我有一个js文件,并且只有在浏览器是IE 8时才想运行一些代码。有没有办法可以做到这一点?
现在我只有这个,但它适用于所有浏览器:
if ($.browser.msie) {
//do stuff for IE 8
}
答案 0 :(得分:9)
参见Browser detection in JavaScript? 和http://modernizr.com
这是简短的(est?)答案:
if (navigator.userAgent.match(/MSIE 8/) !== null) {
// do something in IE8
}
答案 1 :(得分:7)
特定于浏览器的代码几乎不是一个好主意。但是,如果必须这样做,可以将代码置于条件注释中。
http://www.positioniseverything.net/articles/cc-plus.html
<!--[if IE 8]>
<script type="text/javascript">
// this is only executed for IE 8
</script>
<![endif]-->
答案 2 :(得分:2)
好的人,我自己解决了这个问题:
if ($.browser.msie && $.browser.version == 8) {
//my stuff
}
答案 3 :(得分:1)
如果页面小于IE9,您是否可以在标题中进行调用以重定向页面?我发现自己经常为使用IE6-10混合的客户这样做。
在我打电话的文件头中,
<!--[if IE 7]> <link rel="()" type="()" href="(Your link here.)"><![endif]-->
您可以研究的另一个选项是垫片或polyfil。互联网上有许多有助于缩小现代网页设计与旧版浏览器之间的差距。 一个例子是Modernizr。
答案 4 :(得分:1)
您可以使用条件评论(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>
答案 5 :(得分:1)
您可以这样做:
if (navigator.userAgent.indexOf('MSIE 8.0') !== -1) {
// this clause will only execute on IE8
}
答案 6 :(得分:1)
$。不推荐使用浏览器,所以你不能在新的jQuery版本中使用这个对象属性,所以为了支持这个,你必须使用jQuery migrate plugin.Here是 链接。 https://github.com/jquery/jquery-migrate/#readme
答案 7 :(得分:0)
您可以使用 document.documentMode 来获取IE的版本。
switch(document.documentMode)
{
case 8:
//do something with IE8
break;
case 9:
//do something with IE9
break;
case 10:
//do something with IE10
break;
case 11:
//do something with IE11
break;
default:
console.log('Other browsers...');
}
有关文档,请参阅here
答案 8 :(得分:0)
尝试使用像这样的
<script type="text/javascript">
if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent))
document.write('<script src="somescript.js"><\/script>');
</script>