0

这听起来可能很奇怪,但是当用户在 IE 8 上时,我不想添加其他文件,而是想删除一个通常在所有其他浏览器中加载的 JS 文件。

再说一遍。

我的里面有这个head

<script type="text/javascript" async src="my-script.js"></script>

而且我希望该脚本可以在除 IE 之外的所有浏览器中运行(因为它不起作用,所以我不想加载它)。

我知道通常的条件标签是这样的

<!--[if lt IE 9]>
<![endif]-->

但我想没有办法反过来使用它们,所以我想到的唯一解决方案是......</p>

<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') == FALSE) { ?>
      <script type="text/javascript" async src="my-script.js"></script>
<?php } ?>

这是执行此操作的最佳解决方案吗?此外,我实际上需要测试所有低于 9 的 IE 版本。所以我不希望 JS 文件在 IE8、IE7 和 IE6 中加载。

先感谢您。

4

1 回答 1

10

除了 IE

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

仅 IE 9 及更高版本

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

或者

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

IE 9 及更高版本 + 其他浏览器

理论上,您可以使用 OR 运算符,但 NOT IE 注释样式不支持此操作。

<!--[if !(IE)|(gte IE 9)]>
Test
<![endif]-->

您还可以使用这样的嵌套注释:

<!--[if !IE]><![if gte IE 9]>-->
Test
<!--<![endif]><![endif]-->

更多信息

于 2012-10-01T12:39:05.227 回答