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 は? ブーム、壊滅的な構文死!

于 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 に答える