为什么我每次去测试前端更改IE都会增加大约2/3小时的头痛?这不是我的问题BTW ......我的问题是为什么我在文件中定义JS类时得到FooBar is undefined
:
var FooBar = {
field1: '',
field2: '',
someFunction: function(variable) {
field1 = variable;
}
}
...并尝试从另一个JS文件中调用它:
FooBar.someFunction("Hello World");
...在IE7中。在IE 8 +,FF 6 +,Chrome 5+和Safari中没有任何问题。但IE 7似乎并不喜欢它。有什么想法吗?
编辑:
文件按照本例中的布局顺序加载。
答案 0 :(得分:2)
@Baz1nga
和@jfriend00
在此触及了根本原因。页面上还有另一个问题,这是我以前从未见过的问题。
另一个错误:
"Expected Identifier, string or number"
由于另一个脚本的废话,被抛出。有问题的具体废话是参数列表中的尾随逗号(,),后面没有参数值。例如:
someFunction(param1, param2, param3,);
其他浏览器似乎奇怪地应对这种语法......但IE7? BOOM,灾难性的语法死亡!
答案 1 :(得分:1)
a)确保IE中没有抛出js错误,有一些IE特定的JS问题,当js错误发生时打开显示弹出窗口的选项
b)确保先加载类变量定义文件,然后再使用类..还要稍微修改一下语法:
var FooBar = FooBar || {
field1: '',
field2: '',
someFunction: function(variable) {
field1 = variable;
}
}
c)最后添加一些调试代码,看看你正在使用该类的文件是否正在执行,添加一些警告语句。
setTimeout(function(){
alert("before calling foorbar");
FooBar.someFunction("Hello World");
alert("foobar called");
},500);