2012-10-01 86 views
0

这可能听起来很奇怪,但是当用户在IE 8上时不是添加额外的文件我想删除通常在所有其他浏览器中加载的JS文件。IE的条件标签 - 如果浏览器是IE浏览器,是否可以不加载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 } ?> 

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

预先感谢您。

回答

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

+1

第一个是没有条件注释,再次检查语法;) – Bart

+0

- 是的,就是这样。它看起来并不像它,因为它揭示了不实现condcom的浏览器的代码。 – Quentin

+0

对于其他浏览器,它只是一个常规评论,他们不知道“条件评论”。这和写作一样。 <! - 我喜欢吃鱼 - >

相关问题