如何仅为IE 8运行脚本

时间:2013-08-05 21:25:04

标签: javascript jquery-mobile internet-explorer-8

我有一个js文件,并且只有在浏览器是IE 8时才想运行一些代码。有没有办法可以做到这一点?

现在我只有这个,但它适用于所有浏览器:

if ($.browser.msie) {
    //do stuff for IE 8
} 

9 个答案:

答案 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>