1

私は最も奇妙なものを見ています。何が起こっているのかを特定するために助けが必要です。Microsoft SharePoint サーバーで、非同期の画像要求を行う JavaScript を実行しています。

32 ビットおよび 64 ビットの IE9 ブラウザーでページを読み込むと、コードは期待どおりに実行されます。私の同僚が 32 ビットと 64 ビットの IE9 でまったく同じページ (定義済みのリストから取得) をロードすると (すべてのブラウジング モードが同じ値に設定されていることに注意してください)、イメージ リクエストは送信されません。

ただし、同僚が開発ツールを開いて再度閉じた場合 (ツールを使用したり、コマンドを送信したりせずに)、ページをリロードすると、要求は正しく行われます。その後ブラウザを閉じて再度開くと、開発ツールを再度開くまで機能しなくなります。

ActiveX、フラッシュ、またはその他の動作はありません。これは 100% JavaScript なので、トラブルシューティングの方法について完全に途方に暮れています。何が起こっているのか、または正しい方向に私を向けることができますか?

注意事項:

  1. 彼のシステムでは JS が有効になっています。ページ上の他のすべての JavaScript は問題なく動作します。影響を受けるのは私の JavaScript だけのようです。
  2. Chrome と Firefox の両方をテストしましたが、いずれも良好な結果が得られました。
  3. どちらも、IE9、IE8、および IE7 のさまざまなブラウザー モードで (IE9 実行可能ファイルを介して) テストしました。
  4. 問題があれば、私たちは両方とも Windows 7 を使用しています。
4

1 に答える 1

2

問題の原因を突き止めましたが、実際には console.log() に関係しています。基本的に、Microsoft から直接学んだことは、window.console オブジェクトはブラウザーの開発者ツールが開かれるまで存在しないということです。初めて開くまで、window.console は存在せず、それを参照するとコード中断エラーが発生します。

コンソールを使用してバグを追跡するように調整されているため、追跡するのは特に厄介なバグであることがわかりました...とにかく、MSは問題がIE10で解決されたと述べましたが、現在/以前のバージョンをサポートする必要があるを呼び出す前に window.console が定義されていることをテストするこの関数のラッパーを使用するのが賢明です (私は実際に他の目的でラッパーを持っていたので、テスト条件を追加するのは本当に簡単でした)。

うまくいけば、これが IE のバグを追跡するのと同じ困難を抱えていた他の人を助けるでしょう。

于 2012-04-17T22:16:29.533 に答える