我将如何在除 Internet Explorer 之外的每个浏览器中运行脚本?
我在我的网站上使用 queryloader2,并且(无论出于何种原因)在 IE9 中加载大约需要一分钟,我假设在旧版本的 IE 中相同或更糟。在任何其他浏览器中,只需几秒钟。因此,我不想让脚本在任何版本的 IE 中运行(它不会真正损害网站的功能)。
我将如何在除 Internet Explorer 之外的每个浏览器中运行脚本?
我在我的网站上使用 queryloader2,并且(无论出于何种原因)在 IE9 中加载大约需要一分钟,我假设在旧版本的 IE 中相同或更糟。在任何其他浏览器中,只需几秒钟。因此,我不想让脚本在任何版本的 IE 中运行(它不会真正损害网站的功能)。
您需要为此使用条件注释:
<!--[if !IE]>
<script src="myScript.js" type="text/javascript"></script>
<![endif]-->
所有其他答案中的条件注释(在本文发布时)都不正确,将被解释为(无效的)HTML 或在非 IE 浏览器中被完全忽略为 HTML 注释。
重要的是要了解,就 IE 以外的任何浏览器(甚至更新版本的 IE)而言,“条件 HTML 注释”只是一个注释。换句话说,类似于被赞成的答案的建议:
<!--[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。但是解析这些标签的浏览器会看到从第一行开始的注释,然后忽略所有内容,直到遇到 <![endif]-->
第三行。这为我们提供了一段代码,将由非 IE/现代浏览器执行,但会被支持条件 HTML 的旧版本 IE 忽略。
下面的代码可能很好,但不幸的是不能解决我的问题,,,,,,,,,,,,,,,所以如果上面的代码不起作用,那么使用这个
<![if !IE]>You are NOT using IE.<![endif]