4

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

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

4

3 に答える 3

2

を介して提供/作成しているマークアップに問題があるはずですinnerHTML。これは、IE8-standards-modeでは正しく解析できないマークアップからのIEの自動回復の詳細を含むIEチームからの記事です。

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

を使用innerHTMLするとHTMLパーサーが呼び出されるため、ページが読み込まれた後でも、先頭も末尾も作成できないHTML文字列が供給されると、この問題が発生する可能性があることに注意してください。

于 2009-09-18T15:40:34.087 に答える
1

レンダラー自体で発生する自動クラッシュリカバリのように聞こえます。これはスクリプトではなくIE自体のバグであるため、デバッグは確かに困難になります。

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

于 2009-09-18T14:59:29.577 に答える
1

ここをチェック..

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

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

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

X-UA-Compatible: IE=EmulateIE7
于 2009-09-18T14:51:39.867 に答える