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

时间:2012-10-01 12:36:37

标签: php javascript internet-explorer internet-explorer-8

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

再一次。

我在我的head

中有这个
<script type="text/javascript" async src="my-script.js"></script>

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

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

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

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

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

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

提前谢谢。

1 个答案:

答案 0 :(得分: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]-->

More information