IE的条件标签 - 如果浏览器是IE,是否可以不加载JS文件?

mat*_*att 0 javascript php internet-explorer internet-explorer-8

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

再说一遍.

我在我的身上有这个head:

<script type="text/javascript" async src="my-script.js"></script>
Run Code Online (Sandbox Code Playgroud)

我希望该脚本能够在除IE之外的所有浏览器中工作(因为它不起作用,所以我不想加载它).

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

<!--[if lt IE 9]>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

但我想没有办法以相反的方式使用它们,因此我想到的唯一解决方案是......

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

这是最好的解决方案吗?此外,我实际上需要测试9以下的所有IE版本.所以我不希望在IE8,IE7和IE6中加载JS文件.

先感谢您.

Bar*_*art 10

除IE之外的所有

<!--[if !IE]> -->
<script type="text/javascript" async src="my-script.js"></script>
<!-- <![endif]-->
Run Code Online (Sandbox Code Playgroud)

只有IE 9及更高版本

<!--[if gt IE 8]>
<script type="text/javascript" async src="my-script.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

要么

<!--[if gte IE 9]>
<script type="text/javascript" async src="my-script.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

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

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

<!--[if !(IE)|(gte IE 9)]>
Test
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

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

<!--[if !IE]><![if gte IE 9]>-->
Test
<!--<![endif]><![endif]-->
Run Code Online (Sandbox Code Playgroud)

更多信息