- ベストアンサー
JavaScriptでIE6を検知し、転送する方法とは
- JavaScriptを使用して、IE6を検知し、転送する方法について質問があります。
- IE6からアクセスされた場合、アラートを表示してアップグレードを促し、同時にアップグレード用のウェブページに転送するJavaScriptのコードを記述しました。
- IEtesterで試すと、一応Ver.6の際に動作していますが、何故か「ScriptError」が表示されます。また、外部のJavaScriptファイルにコードを記述すると、アラートの文字が文字化けしてしまいます。どこか悪いところがあるのかなど、ご意見をいただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
スクリプトエラーの原因はわかりませんが、IE6 以下を判別したいのなら 条件付きコメント(バージョンベクタ)や条件付きコンパイルを利用するのが確実だと思います。 IE7.js も条件付きコメントを利用しています。 <!--[if lte IE 6]><script type="text/javascript"> location.href = 'http://www.example.com/'; </script><![endif]--> バージョン ベクタ - MSDN http://msdn.microsoft.com/ja-jp/library/cc817577.aspx 条件付きコンパイル http://msdn.microsoft.com/ja-jp/library/ahx1z4fs%28v%3DVS.80%29.aspx ブラウザの機能の検出 (JScript) http://msdn.microsoft.com/ja-jp/library/0hyey391%28v%3DVS.80%29.aspx
その他の回答 (1)
- LOHA
- ベストアンサー率52% (203/388)
>IEtesterで試すと、一応Ver.6の際に、狙った動作はしています。 >しかし、何故かIEtester上で「ScriptError」が表示されます。 IE6本物で試したので確証は持てませんが、文字コードの問題のようです。 charsetの指定なしでHTMLをUTF-8で保存し、IE6で表示させてみたところ、alertの部分でエラーがでました。一方Shift-JISではエラーは出ませんでした。 ということで正しく文字コードを指定しましょう。 http://www.animegif.net/tips/html/html-charset.html >こうすると何故かアラートの文字が文字化けしてしまいます。 これも文字コードの問題です。HTMLと同じ文字コードにするのが無難だと思います。
お礼
大変勉強になりました。 ありがとうございました。
お礼
<!--[if lte IE 6]> <script type="text/javascript"> window.alert("ご利用のブラウザ(Internet Explorer Ver.6以下)では一部の機能が正しく取り扱いできません。\n新しいバージョンへアップグレードして下さい。"); window.open("http://www.microsoft.com/japan/windows/products/winfamily/ie/function/default.mspx"); </script> <![endif]--> どうやらこのくらいにしておくのが良いようですね。 私ももっと勉強しなくては(笑) ありがとうございました。