1

つまり、7または6を検出し、次のjavascriptを使用してユーザーをエラーページにリダイレクトしようとしています

 var Browser = {
        Version: function () {
            var version = 999; // we assume a sane browser
            if (navigator.appVersion.indexOf("MSIE") != -1)
            // bah, IE again, lets downgrade version number
                version = parseFloat(navigator.appVersion.split("MSIE")[1]);
            return version;
        }
    }

    if (Browser.Version() == 7 || Browser.Version() == 6) {

        if (window.location.href != "/browser_problem") {
            window.location.href = "/browser_problem";
        }
    }

バージョン 8.0.7601.17514 では、ユーザーが 7 または 6 のようなエラー ページにリダイレクトされるというフィードバックがいくつかありました。

何が問題になる可能性がありますか?

4

1 に答える 1

2

ここからこの解決策を得たと思いますか?

使用しているコードのチャンク (上のリンク) のコメントを読むと、他の誰かがあなたと同じ問題を抱えていることがわかります。

コード自体は健全です (ただし、この方法でブラウザーをスニッフィングするのが良い方法だとは思わない人もいます)。

Internet Explorer 8 がキャッチされてリダイレクトされる理由は、次のいずれかです。

  • ユーザーはブラウザを IE7 互換モードにしています (これは [ツール] メニュー、または URL バーの小さなブラウザ アイコンから可能です。IE8 は、自動的に検出して IE7 モードに切り替えるのに十分なほどインテリジェントであることを目的としています。これは通常、無効なことが原因で発生します。マークアップ);
  • ウェブサイト自体が、ブラウザを強制的に IE7 モードにするX-UA-Compatibleか、または類似のものを使用しています。

問題の真相を突き止めるには、IE8 のコピーを入手して、自分で試してみてください ( BrowserStackを使用できます。これは、クロスブラウザー テスト用の非常に優れたブラウザー内リソースです)。IE8 を使用して複製できる場合は、 [ツール] メニューで IE7 モードになっていないことを確認してください。

X-UA-Compatibleページの HTML マークアップを見て、head に次のようなメタ タグがないことを確認します。

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

次のように変更できます。

<meta http-equiv="X-UA-Compatible" content="IE=edge">
于 2013-06-03T14:28:49.113 に答える