5

互換モードが必要なフレームがありますが、親フレームがそれを設定しているように見えるため、フレーム内の次のタグは何もしません。

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

とにかく、フレームのみに互換モードを適用するか、フレームに互換モードを親フレームに適用させる必要がありますか。

モードを切り替えるJavaScriptメソッドがあれば、子フレームから親フレームに適用できると考えていました。

4

2 に答える 2

2

だからここに私が集めたものがあります。

うまくいくように見える唯一のものは、メタタグの方法です。

ただし、IE9 では 1 つのフレームを別のフレームとは異なるタイプにする機能が無効になっているため、フレームでは機能しないようです。

また、メタ タグの前にスクリプト タグやリンク タグを配置することはできません。また、私が気付いた他のメタ タグのみを配置することもできません。それ以外の場合は同様に失敗します。

テストケース:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Test test</title>
        <meta name="keywords" content="keywords, keyword, keyword phrase, etc.">
        <!--<link href="test.css" rel="stylesheet" type="text/css" />-->
        <!--<script type="text/javascript">alert('test');</script>-->
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    </head>
    <body>
        inline-block <div style="display:inline-block">test</div>
    </body>
</html>
于 2012-10-11T17:22:36.670 に答える
1

頭のてっぺんからメタタグを作成して、親フレームの頭に挿入してみてください。それがエミュレーションを強制するかどうかはわかりませんが。

var meta = document.createElement('meta');
meta.setAttribute('http-equiv', 'X-UA-Compatible');
meta.setAttribute('content', 'IE=EmulateIE7');

parent.document.getElementsByTagName('head')[0].appendChild(meta);
于 2012-04-02T11:21:09.247 に答える