0

为什么每次我去测试前端更改 IE 都会给这个过程增加大约 2/3 小时的头痛?那不是我的问题顺便说一句......我的问题是为什么我FooBar is undefined在文件中定义一个JS类时会得到一个:

var FooBar = {
    field1: '',
    field2: '',
    someFunction: function(variable) {
        field1 = variable;
    }
}

...并尝试从另一个 JS 文件中调用它:

FooBar.someFunction("Hello World");

...在 IE7 中。在 IE 8+、FF 6+、Chrome 5+ 和 Safari 中没有问题。但 IE 7 似乎不喜欢它。有任何想法吗?

编辑:

文件按照本示例中的排列顺序加载。

4

2 回答 2

2

@Baz1nga@jfriend00在这里谈到了根本原因。页面上还有另一个问题,这是我以前从未见过的问题。

另一个错误:

"Expected Identifier, string or number"

由于另一个脚本中的废话而被抛出。有问题的具体废话是参数列表中的尾随逗号 ( , ),后面没有参数值。例如:

someFunction(param1, param2, param3,);

奇怪的是,其他浏览器似乎可以处理这种语法……但是 IE7 呢?BOOM,灾难性的语法死亡!

于 2012-04-18T00:13:02.997 回答
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);
于 2012-04-17T04:44:29.443 回答