0

注:「ブラウザモード」と「ドキュメントモード」と言うときは、IE8の開発者ツールのメニューバーにあるレンダリングオプションを指します。

Internet Explorer 8のWebサイトに奇妙な機能があることに気づきました。ユーザーが[カートに追加]ボタンをクリックすると、jQuery.load()メソッドが呼び出されて新しいWebページが要求され、JavaScriptの「ポップアップ」ウィンドウ内に配置されます。IE7(さらに言えばFirefox、Chrome、Safari)ではすべてがうまく機能します。

ただし、IE8では、すべての<table>要素(およびその子)は、を介して読み込まれるコンテンツに隠されてい.load()ます。これは、IE8クァークズモード(ページのデフォルト)でのみ発生し、IE7クァークズモードでは発生しません。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />またはタグを使用してIE8にドキュメント<meta http-equiv="X-UA-Compatible" content="IE=7" />のレンダリング方法を指示できることは知っていますが、これにより、ページはIE8の「ブラウザーモード」で IE7標準ドキュメントとしてレンダリングされます。

奇妙なことに、私が必要としているのは、IE7ブラウザーモードまたはIE8互換性ビューブラウザーモードのいずれかで、ページをクァークズモードで強制的にレンダリングすることです。これは可能ですか?

これも疑問を投げかけます:IE8のクァークズモードはIE7のクァークズモードと同じであると想定されていますか?

4

3 に答える 3

1

ブラウザがQuirksモードの場合、ブラウザから良いものを期待することはできません。コードをhtml標準に準拠させて、ブラウザーが標準モードになり、JavaScriptの問題を調べ始めることができるようにします。

于 2010-06-09T19:34:18.097 に答える
0

クァークズモードは、Doctypeを指定しない場合に得られるレンダリングを参照するために使用されます(または、本当に古いdoctypeを指定する場合は、このトピックに関するWikipediaの記事の表を参照してください)。そのレンダリングはIE5(または5.5、どれを忘れたか)に基づいています。これはIE7とIE8の間で変更されていません。

IE7またはクォークモードでドキュメントをレンダリングしているときにIE8で異なる動作が発生している場合、これは問題がバージョンチェックに関連していることを示唆しています-これはブラウザモードが制御するものだからです。バージョンチェックでIE8がIE7と異なる扱いをせず、ドキュメントモードがIE7またはクァークズモードである場合、違いは見られないはずです。

于 2010-06-09T19:33:58.453 に答える
0

私はこれと同じ問題にぶつかっていますが、バージョンチェックが原因ではないIE7とIE8のブラウザモードの動作に違いがあることがわかりました。innerHTMLにロードしようとしているコンテンツにDOCTYPEが含まれている場合、IE8ブラウザーモードでは、テーブル内のコンテンツは表示されませんが、IE7およびIE7モードでは表示されます(これはすべて、ドキュメントのクァークズモードにのみ適用されます)モード)。次のHTMLサンプルは、問題を示しています(「テーブル内」というテキストはIE8ブラウザーモードでは表示されません)。

<html>
    <head>
        <title>DOCTYPE Browser mode test</title>
    </head>
    <body>
        <div id="content">Original Content</div>

        <button type="button" onclick="document.getElementById('content').innerHTML = '<!DOCTYPE>Outside table <table>Inside Table</table>';">Change Content!</button>
    </body>
</html>

残念ながら、IE7ブラウザモードでクァークズモードを取得する方法が見つかりませんでした。この問題を回避するには、「document.getElementById('content')。innerHTML = document.getElementById('content')。innerHTML」のようにします。これは、DOCTYPEやその他の無関係な部分が解析されているため、リセットすると発生します。再度表示するテーブル。

于 2010-09-28T15:57:56.470 に答える