js ファイルがあり、ブラウザーが IE 8 の場合にのみコードを実行したいと考えています。これを行う方法はありますか?
現在、私はこれしか持っていませんが、すべてのブラウザ用です:
if ($.browser.msie) {
//do stuff for IE 8
}
js ファイルがあり、ブラウザーが IE 8 の場合にのみコードを実行したいと考えています。これを行う方法はありますか?
現在、私はこれしか持っていませんが、すべてのブラウザ用です:
if ($.browser.msie) {
//do stuff for IE 8
}
JavaScript でのブラウザ検出を参照してください。 およびhttp://modernizr.com
短い(最も?)答えは次のとおりです。
if (navigator.userAgent.match(/MSIE 8/) !== null) {
// do something in IE8
}
ブラウザー固有のコードは、ほとんど良い考えではありません。ただし、これを行う必要がある場合は、コードを条件付きコメント内に入れることができます。
http://www.positioniseeverything.net/articles/cc-plus.html
<!--[if IE 8]>
<script type="text/javascript">
// this is only executed for IE 8
</script>
<![endif]-->
わかりました、私は次のように自分で解決しました:
if ($.browser.msie && $.browser.version == 8) {
//my stuff
}
ページが IE9 未満の場合、ページをリダイレクトするためにヘッダーで呼び出しを行うことができますか? 私は、IE6 と 10 を混在させて使用しているクライアントに対して、これを頻繁に行っています。
私が呼び出す文書の頭の中で、
<!--[if IE 7]> <link rel="()" type="()" href="(Your link here.)"><![endif]-->
調べることができる他のオプションは、シムまたはポリフィルです。インターネット上には、最新の Web デザインと古いブラウザーの間のギャップを埋めるのに役立つものがたくさんあります。例はModernizrです。
次のようなことができます。
if (navigator.userAgent.indexOf('MSIE 8.0') !== -1) {
// this clause will only execute on IE8
}
条件付きコメントでそれを行うことができます(https://stackoverflow.com/a/10965091/1878731による):
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
if ($('html').is('.ie8')) {
...
}
または、html をいじらずに ( http://en.wikipedia.org/wiki/Conditional_commentで):
<script>
/*@cc_on
@if (@_jscript_version == 5.8) { // IE8 detected
// do something
}
@*/
</script>
$.browser は廃止されたため、新しい jQuery バージョンではこのオブジェクト プロパティを使用できません。これをサポートするには、jQuery 移行プラグインを使用する必要があります。リンクは次のとおりです。 https://github.com/jquery/jquery-migrate/#readme