Javascript类“undefined” - IE7

时间:2012-04-17 04:06:52

标签: javascript class internet-explorer-7 prototypejs

为什么我每次去测试前端更改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似乎并不喜欢它。有什么想法吗?

编辑:

文件按照本例中的布局顺序加载。

2 个答案:

答案 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);