如何在IE中加载脚本?

时间:2011-03-31 19:24:00

标签: javascript internet-explorer conditional-comments

可以在带有条件注释的IE中加载脚本

<!--[if lte IE 7]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->

但如果我想在IE lte 7中加载它(但在所有其他浏览器中仍然需要它)会怎样?

任何简单的解决方案?

P.S。我有一个SyntaxHighlighter的问题 - 太多的代码减慢了IE7的速度,因为我的时间不够,我决定暂时把它关掉IE7。

7 个答案:

答案 0 :(得分:18)

This post表示您可以使用!

[if !IE](NOT)运算符

答案 1 :(得分:5)

<![if !IE]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]>

答案 2 :(得分:4)

<!--[if gte IE 7]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->
<!--[if !IE]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->

答案 3 :(得分:3)

这种语法很好用(脚本不会在firefox,chrome等中注释):

<!--[if !IE]><!-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<!--<![endif]-->

答案 4 :(得分:1)

您可以尝试检测浏览器服务器端,然后回显适当的脚本包含。

以下是PHP中简单浏览器检测的示例:

http://www.php-scripts.com/20050912/12/

答案 5 :(得分:0)

我使用了这里和其他地方显示的示例,看到这个代码示例搞砸了多少个地方真的很令人沮丧。事实证明答案很简单,IE有特殊的条件限制&#39;喜欢[if IE],但其他浏览器需要评论才能使用&#39;条件&#39;。

例如,由于JQuery 2不能与IE8一起使用,你可以做这样的事情

<!--[if IE ]>  (following is only visible to IE)
    <script src="./js/lib/jquery-1.6.1.min.js"></script>
<![endif]-->
<!--[if !IE]>-->  (extra comment - only visible to non-IE)
    <script src="./js/lib/jquery-2.1.1.min.js"></script>
    <script src="./js/lib/jquery.mobile-1.4.5.min.js"></script>
<!--<![endif]-->

我已经在Firefox,Chrome,IE8,Dolphin移动版和Chrome移动版中验证了上述功能。您也可以指定版本。例如,小于IE 9将是:<!--[if lt IE 9 ]>

有关详细说明,请查看http://www.sitepoint.com/web-foundations/internet-explorer-conditional-comments/

答案 6 :(得分:0)

由于条件语句在IE(10,11)中不起作用,并且Microsoft仅支持IE(11),并且如果有人仍在查看运行IE特定的JavaScript,则此代码仍可以在IE(11)中进行测试,并且非IE浏览器(Chrome,Firefox,Edge)。

<script type="text/javascript">
    if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) 
        {document.write('<script src="../nolng/js/ex1IE.js"><\/script>');}
    else 
        {document.write('<script src="../nolng/js/ex1.js"><\/script>'); // for Chrome,Firefox,Edge}
</script>