如何在除了Internet Explorer之外的所有浏览器中运行脚本?
我在我的网站上使用queryloader2,但是在IE9中加载需要大约一分钟的时间,我认为在旧版本的IE中情况可能更糟。在任何其他浏览器中,加载只需要几秒钟。因此,我希望在任何版本的IE中都不要运行该脚本(这并不真正影响网站的功能)。
如何在除了Internet Explorer之外的所有浏览器中运行脚本?
我在我的网站上使用queryloader2,但是在IE9中加载需要大约一分钟的时间,我认为在旧版本的IE中情况可能更糟。在任何其他浏览器中,加载只需要几秒钟。因此,我希望在任何版本的IE中都不要运行该脚本(这并不真正影响网站的功能)。
你需要使用条件注释来实现:
<!--[if !IE]>
<script src="myScript.js" type="text/javascript"></script>
<![endif]-->
!
符号。没有它,脚本只会在 IE 中加载。有了它,所有浏览器都可以加载,除了 IE。 - antyrat所有其他答案中(发布时)的条件注释都是不正确的,将被解释为无效的HTML或在非IE浏览器中完全忽略作为HTML注释。
重要的是要理解,在除IE以外的任何浏览器中(甚至新版本的IE),“条件HTML注释”只是一个注释。换句话说,像得到赞同的答案建议的那样:
<!--[if !IE]>
<script src="myScript.js" type="text/javascript"></script>
<![endif]-->
<!--
(位于第1行)和 -->
(位于第3行)间的长注释,就像其他HTML注释一样。<!-- <!-- --> something -->
是一个注释,它在第一个-->
处结束而不是第二个,这意味着something -->
将被解析为HTML而不被视为注释的一部分。<!--[if !IE]-->
<script type="text/javascript" src="script.js"></script>
<!--<![endif]-->
在这里,非IE浏览器将看到两个单独的注释(分别在第1和第3行),中间是常规HTML。但是解析这些标记的浏览器将看到从第一行开始的注释,然后忽略直到在第三行遇到<![endif]-->
。这为我们提供了一段代码块,将由非IE/现代浏览器执行,但将被支持条件HTML的旧版本IE忽略。
以下代码可能是正确的,但不幸的是在我的问题中无法工作。如果上面的代码无法工作,请使用这个。
<![if !IE]>You are NOT using IE.<![endif]