我可以从另一个调用一个js文件。

我有一个asp.net mvc应用程序,我试图将我的所有JavaScript移动到js文件。 现在我有一个名为sharedfunctions.js的地方,它遍布整个地方。

问题是,如果我将一些代码移动到一个调用sharedfunctions.js文件中的方法的js文件中,它似乎不再起作用。

什么是能够在js文件中分解公共代码并允许它们实际正常工作的最佳方法?

只要页面上的所有.js文件都被引用,所以当页面加载后,其他任何文件中的函数/变量都可以访问。

我强调最后一点,因为它可能是你问题的根本原因。 可能是.js文件加载的顺序是错误的。

如果您有一些立即执行的javascript(例如,它不是由页面事件触发),那么它可能会在您的sharedfunctions.js文件包含在页面之前开始执行。 在这种情况下,sharedfunctions.js中的函数在其他javascript执行时字面上不存在。

看看你是否可以查看消除这些问题的顺序。 例如,尝试确保您的sharedfunctions.js作为页面上的第一个脚本文件加载。

恕我直言,这比试图破解你现有的js文件直接加载其他js文件的内容更可取。

问题是你认为你用伪造的东西覆盖了你的function吗? 如果在定义函数之前就是这种情况,您可以检查是否已经定义了它。

if(typeof yourFunctionName ==’function’)

最好的方法是将它全部放在一个文件中,并在开发环境中,将其分解为每个类的文件或您使用的任何方法,只需按正确的顺序包含它们。

如果你想动态地包含一个JS(使用moo-tools快捷方式,尽管你可以简单地使用他们的资产库)

$$('head')[0].adopt(new Element('script',{'type':'text/javascript','src':'path to js file'})); 

一些库解决方案

Dojo: dojo.require("my.package.name");

jQuery: $.getScript("url/to/script.js", function() { /* callback */ });

使用此模式:

 function IncludeJavaScript(jsFile) { document.write('