5

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

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

4

3 回答 3

6

您需要为此使用条件注释:

<!--[if !IE]>
    <script src="myScript.js" type="text/javascript"></script>
<![endif]-->
于 2012-06-22T12:06:49.173 回答
4

所有其他答案中的条件注释(在本文发布时)都不正确,将被解释为(无效的)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 忽略。

于 2017-12-07T20:36:08.600 回答
-2

下面的代码可能很好,但不幸的是不能解决我的问题,,,,,,,,,,,,,,,所以如果上面的代码不起作用,那么使用这个

<![if !IE]>You are NOT using IE.<![endif]
于 2014-08-07T04:49:34.390 回答