JavascriptがIE 8に互換表示でページをリロードさせるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1444944

質問

Windows Vista上のInternet Explorer 8で、かなり複雑なJavascriptベースのWebアプリケーションをテストしています。アプリケーションをロードすると、IEは「標準」になります。ブラウザモードと「IE 8標準」ドキュメントモード。アプリケーションの実行中、IEはページをリロードし、「(URL)の表示の問題によりInternet Explorerが互換表示でページをリロードした」などのメッセージを表示することがあります。 (正確なメッセージではなく、私は英語版以外のVistaを使用しています)。リロード後、ブラウザはQuirksモードになります。

問題を確実に再現または絞り込むことができないため、Javascriptコードのデバッグは無駄になりました。そのため、この動作の原因についての洞察に感謝します。

役に立ちましたか?

解決

innerHTML で提供/作成しているマークアップに問題があるはずです。これは、 IE8標準モードで正しく解析できないマークアップからのIEの自動回復の詳細

  

...新しいレイアウトエンジン内に特定のコードパスがあります。エラーが発生した場合、レイアウトプロセスは正常に回復できず、これらのパスに関するアサーションを保持しています...互換表示を使用してレイアウトの「ハードアサーション」を回復することにより、IE8のリリースバージョン。つまり、IE7のようにページを表示すると、コンテンツをまったく表示しないよりもユーザーエクスペリエンスが向上すると考えています。

innerHTML を使用すると、HTMLパーサーが呼び出されるため、ページを読み込んだ後でも、先頭も末尾もできないHTML文字列を入力すると、この問題が発生する可能性があります。

他のヒント

ここをチェック..

基本的に。ページごとに、メタタグを追加できます

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

または、サイト全体でこれをヘッダーに追加します:

X-UA-Compatible: IE=EmulateIE7

自動クラッシュ回復のような音レンダラー自体で発生します。これはスクリプトではなくIE自体のバグであるため、デバッグは実際に困難になります。

これはすべてのIE8インストールで発生しますか? IE8は最新のパッチで更新されていますか? (信頼性の低いサードパーティの拡張機能でしょうか?)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top