0

私は Web アプリケーションを開発してきましたが、IE でのテストで、特定の重要な表示要素に重大な問題があることに気付きました。このため、IE ユーザーから Web アプリをブロックし、それらを別のページに送信して Firefox または Chrome をダウンロードする必要があります。

これを行う方法を探していましたが、IE 専用の簡単なガイドが見つかりません。いくつかのスニペットを見つけて試しましたが、ブラウザー/OS/などを特定して印刷するために使用されるだけなので、機能しません。情報。よろしくお願いします。

4

5 に答える 5

2

完全にブロックするのではなく、有益なメッセージを検討してください。ちなみに、これは IE が一時的に役立つ場所でもあります。

<!--[if IE]><div class="info-bar">Your browser is not supported. Some
parts of this application might be non-functional.</div><![endif]-->
于 2011-03-27T21:59:12.017 に答える
1

1 つの方法は、ユーザー エージェントを確認することです。$_SERVER['HTTP_USER_AGENT']

if(preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT']))
    {
        // Internet Explorer!
        // header("Location: noie.php");
        // exit();
    }

ただし、これは常に信頼できるとは限らないため、別の方法として、次のように JavaScript を介して機能が利用可能かどうかを確認することもできます。

if(window.localStorage){
  // you can use local storage
} else {
  // you can't
}

これが面倒だと思われる場合 (実際にそうです)、 Modernizerをチェックして、機能の検出を支援することを強くお勧めします。

于 2011-03-27T21:55:05.463 に答える
1

サーバー側でのブラウザー スニッフィングは、信頼性が低く、特定のブラウザーがアプリを使用できないことを証明できないため、お勧めできません。

まず、特定のブラウザー (Opera など) は、別のユーザー エージェントを送信できます (送信する予定です)。これは、ブラウザーの「互換性」を高めるためです (つまり、使用する予定の技術そのものを回避します)。

第二に、それが必ずしも動作しないのは Internet Explorer だからというわけではありません。また、Web アプリと互換性がある可能性が非常に高い Internet Explorer 9 も除外されます。

代わりに、クライアント側で、期待する機能が実際にあることを確認する必要があります。あなたは依存していdocument.getElementsByClassNameますか?これを試して:

if (document.getElementByClassName == undefined)
    document.location.replace('Unsupported browser URL here');

あなたは依存してい<canvas>ますか?これを試して:

if (document.getElementById('canvas-element').getContext == undefined)
    document.location.replace('Unsupported browser URL here');

複雑な CSS3 ルールに依存していますか? そのようなルールで、レガシー ブラウザ向けのメッセージを非表示にします。

.error-message:not(.unexistant-class) {
    /* this rule will be dropped by browsers that don't support the not()
        selector */
    display:none;
}

つまり、ユーザー エージェントの代わりに機能をチェックします。クライアントが必要なすべての機能を備えている場合、それを置き去りにする理由はありません。

于 2011-03-27T21:58:08.453 に答える
0

ユーザー エージェント ヘッダーを確認する必要があります。

http://php.net/manual/en/function.get-browser.php

于 2011-03-27T21:53:38.330 に答える
0

このコードを使用することもできますhttp://www.ie6nomore.com/

于 2011-03-27T21:57:54.090 に答える