1

関数名が引用符で囲まれていない場合に設定された間隔が予期せずに動作するという問題に最初に遭遇しました(そしてオプションで括弧が追加されました):

repeatInterval = setInterval("foo()", 50);

このようにコードを変更すると、Mac バージョンの Firefox ではまったく実行されません。

さらにテストを行い、Linux および Windows バージョン (Windows では 3.0.10 と 3.6 の両方を含む) で完全に正常に動作することを確認しました。この問題を引き起こす唯一の組み合わせは、Mac OS X Snow Leopard 上の Firefox (この場合は 3.6) です。

次の形式で書かないと、まったく機能しません。

repeatInterval = setInterval(foo, 50);

他のすべてのブラウザと Mac 上の Firefox で動作するこの問題の解決策はありますか?

4

1 に答える 1

3

setIntervalまたはの最初のパラメーターとして文字列を渡さないでくださいsetTimeout。関数識別子を渡すか ( で行ったようにsetInterval(foo, 50);)、無名関数を (functionキーワードを使用して) 渡す必要があります。

于 2010-03-03T16:18:00.307 に答える