HTAccessまたはJavascriptのいずれかを使用してリダイレクトするためにIE以外のすべてのブラウザを検出する方法はありますか?IEでない場合は、site.comにリダイレクトしますか?
4 に答える
var ie = /msie/i.test(navigator.userAgent);
if (!ie) { location.href = 'http://site.com'; }
リダイレクト コードが IE によって解釈されないことを意味するため、むしろIE の条件付きコメントを使用することをお勧めします。つまり、IEは JS コードをまったく実行せず、他のブラウザのみが実行します。
JS を使用したリダイレクト
<!--[if !IE]> -->
<script>
window.location.href = 'http://not-ie.com'
</script>
<!-- <![endif]-->
メタリフレッシュを使用したリダイレクト
<!--[if !IE]> -->
<meta http-equiv="refresh" content="5;url=http://not-ie.com/">
<!-- <![endif]-->
リダイレクト前にページを表示しないテクニック
<body>
これを行うには、タグを条件付きでレンダリングします。免責事項:これはテストしていません。
<!-- for non-ie browsers, render the body tag as invisible -->
<!--[if !IE]> -->
<meta http-equiv="refresh" content="5;url=http://not-ie.com/">
<body style="display: none">
<!-- <![endif]-->
<!-- for ie, render the body tag normally -->
<!--[if IE]> -->
<body>
<!-- <![endif]-->
<!-- your page content HTML goes here -->
</body></html>
条件付きコメントの詳細については、http : //www.quirksmode.org/css/condcom.html を参照してください。
前の回答で説明した条件付きコメントを使用したメソッドが IE10 では機能しないことを理解していますか? IE10 は条件付きコメントをサポートしておらず、まもなくリリースされます。
したがって、コードを実際に機能させるには、機能検出または userAgent のいずれかに依存してください。しかし、多くのプラグインがある場合、userAgent も失敗することがあるため、実際には「Internet Explorer」または「MSIE」がカットされることがあります。
検出の信頼性を高めるために、少し機能スニッフィングを追加します。
if ('\v'=='v' || /msie/i.test(navigator.userAgent);) {
// ah that's you IE!
}
もういい。
できるよ:
<!--[if IE 6]><script>location.href='youhazie6.htm';</script><![endif]-->