仅在不运行Internet Explorer时才运行脚本

时间:2012-06-22 12:05:38

标签: javascript html internet-explorer

除了Internet Explorer之外,我如何在每个浏览器中运行脚本?

我在我的网站上使用queryloader2,并且(无论出于什么原因)在IE9中加载大约需要一分钟,我在IE的旧版本中假设相同或更差。在任何其他浏览器中,它只是几秒钟。因此,我想在任何版本的IE中都没有运行脚本(它并没有真正损害网站的功能)。

3 个答案:

答案 0 :(得分:6)

你需要使用条件评论:

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

答案 1 :(得分:4)

所有其他答案中的条件评论(在发布时)是不正确的,并且将被解释为(无效)HTML或完全被忽略为非IE浏览器中的HTML评论。

重要的是要理解,就IE以外的任何浏览器而言(甚至更新版本的IE),&#34;条件HTML注释&#34;只是一个评论。换句话说,就像赞成回答的建议:

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

就IE而言,只是一个长评论,从第1行的<!--开始,到第3行的-->结束,就像任何其他HTML评论一样

要让IE忽略一大块HTML,你必须利用HTML注释不支持嵌套这一事实,即<!-- <!-- --> something -->是一个以结束的注释 -->而不是第二个,意味着something -->将被解析为HTML而不被视为评论的一部分。

所以我们可以做的就是使用这样的东西:

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

在这里,非IE浏览器将看到两个单独的注释(分别在第1行和第3行)和中间的常规HTML。但解析这些标记的浏览器会在第一行开始看到注释,然后忽略所有内容,直到第3行遇到 <![endif]-->。这为我们提供了一个由非IE /现代浏览器执行的代码块,但是支持条件HTML的旧版IE将忽略这些代码。

答案 2 :(得分:-2)

下面的代码可能没问题,但遗憾的是我的问题不起作用,,,,,,,,,,,,,,,所以如果上面的代码不起作用,那就用这个

<![if !IE]>You are NOT using IE.<![endif]
相关问题