这可能听起来很奇怪但是当用户在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文件。
提前谢谢。
答案 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]-->