我有两个js文件。我在我的js文件中使用命名空间。这是第一个JS文件的样子:
(function(common, undefined) {
"use strict";
common.FunctionOne = function(){
//do something
};
}(window.common = window.common || {}));
第二个js文件如下所示:
(function(processing, undefined) {
"use strict";
processing.FunctionTwo = function(){
common.FunctionOne()
};
}(window.processing = window.processing || {}));
在我的HTML页面上,我已经包含了第一个js和第二个js(通过标签)。我收到错误"无法获得财产' FunctionOne'未定义或空引用"仅在IE8中。它适用于其他浏览器。
我不确定,但它看起来像是一些名称空间问题。看起来IE8无法识别第一个js文件中定义的函数。
有什么想法吗?
感谢。
答案 0 :(得分:-1)
嗨,我尝试重现错误 link to jsfiddle
(function(common, undefined) {
"use strict";
common.FunctionOne = function(){
//do something
$("#one").html("Hi you");
};
}(window.common = window.common || {}));
(function(processing, undefined) {
"use strict";
processing.FunctionTwo = function(){
common.FunctionOne();
};
}(window.processing = window.processing || {}));
window.processing.FunctionTwo();
没有文件只有一个js与两个模块似乎工作,尝试打开小提琴,首先要知道的是¿代码本身是否失败?
如果它工作正常,我们可以尝试确保,¿在两种情况下都是相同的窗口对象? 如果存在iframe,则可以在错误的窗口对象中设置代码
您可以尝试添加调试器;第二个函数中的行,并形成控制台查看窗口对象,看看它有什么属性