我想仅在浏览器不是IE时才包含JavaScript文件。有没有办法做到这一点?
答案 0 :(得分:13)
您可以使用IE的conditional comments执行此操作,如下所示:
<![if !IE]>
<script src="your-non-IE-script.js" type="text/javascript"></script>
<![endif]>
请注意,上述内容由非IE浏览器处理,因为条件是不 HTML注释,而是处理指令所以处理中间的位由非IE浏览器。 IE看到条件并跳过内容,因为它理解条件意味着“不是你,继续前进。”
如果你想为IE做一些 ,你可以使用类似的表格,但使用HTML注释(使用--
),因为这是你可以依赖的唯一方式其他浏览器忽略内容。 IE知道要注意它们,即使它们是评论。更多关于上面的链接。
请注意,当您使用条件注释(它们会暂时阻止下载其他资源)时,IE(而非其他浏览器)的页面加载速度有所不同,更多信息请参见:http://www.phpied.com/conditional-comments-block-downloads/
更新2013 :IE10 +不再支持条件评论。
答案 1 :(得分:3)
您可以使用IE conditional comment。
要获得将在IE以外的浏览器中显示的内容,但不会在IE中显示,并且仍然会验证,您可以使用:
<!--[if !IE]>-->
<script src="..."></script>
<!--<![endif]-->
答案 2 :(得分:3)
首先,请注意:这不是一个好习惯。如果可能,您应该努力以与浏览器无关的方式设计您的网站,以便它在所有浏览器中保持一致,而无需为浏览器特定问题维护黑客和技巧。
但是如果你真的想这样做,那么只有在浏览器 IE时才包含文件最简单:
<!--[if lt IE 7]>
<script type="text/javascript" src="global.js"></script>
<![endif]-->
(仅在浏览器为IE6或更低版本时才包含该文件。)
但是,如果你真的想以相反的方式做到这一点,这里有一些你的选择:
get_browser
函数。)browser
函数。)答案 3 :(得分:3)
它比条件评论鲜为人知,但我想我会提到你也可以使用名为条件编译的IE功能 - 见http://msdn.microsoft.com/en-us/library/7kx09ct1%28VS.80%29.aspx
这个例子来自他们的文档:
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
document.write("JScript Version 5.0 or better.<BR>");
@else @*/
document.write("You need a more recent script engine.<BR>");
/*@end @*/
答案 4 :(得分:1)
你可以完全不同的方式[仅在IE中插入一些东西]使用条件评论,这可能会对你有帮助。
答案 5 :(得分:1)
是的,IE的条件脚本是你的答案:
<!--[if lt IE 7 ]>
<script src="/js/my_ie_script.js"></script>
<![endif]-->
答案 6 :(得分:0)
转过身来怎么样?如果有可能,您可以使用IE的条件注释:http://www.quirksmode.org/css/condcom.html
否则你可以嗅探用户代理,但这被认为是'不良做法'。