有没有办法为所有浏览器禁用某个脚本?
答案 0 :(得分:5)
您可以使用条件编译来确定客户端是否正在使用MSIE。
var IE = /*@cc_on!@*/false;
可以用作
if (IE) {
// IE.
} else {
// Others.
}
仅在IE中,!
将被编译并在表达式中被采用,从而产生新的表达式!false
,其逻辑上为true
。这比$.browser.msie
效果更好,因为它可以被useragent欺骗,也比document.all
更好,因为它也会影响某些Opera版本。
那就是说,你试图禁用它是什么?另一方面,您也可以使用特征检测。以下是对此的讨论:Browser detection versus feature detection
答案 1 :(得分:1)
我不推荐这个,但是:
if(!$.browser.msie) {
//non IE script
}
我会修复脚本在IE中工作,或者根据浏览器不支持的某些功能将其排除......不仅仅是因为它是IE。对于任何浏览器,明天可以通过更新添加功能,并且您的脚本仍然会将其排除。有关功能检测的更多信息,请参阅$.support
。
从运行中排除某些内容,因为“它不受支持”是完全有效的方案。但是,排除某些东西是因为“IE不支持它......当我编写这段代码时”并不是一个好方法。相反,请检查您所需的功能是否存在,并且用户可以在当前浏览器中获得最丰富的体验。
答案 2 :(得分:1)
您无法使用Microsoft's recommended way of inserting a conditional comment的IE浏览器包含javascript:
<!--[if !IE]>
<script src="myscript.js" type="text/javascript"></script>
<![endif]-->
或者只是将您要排除的代码包装在评论中。
答案 3 :(得分:-2)
如果您说的是IE 6,可以通过调用此函数使其崩溃:
function crash_IE6() {for(x in document.open);}
说真的,最常用的检测IE的方法是检查document.all的存在......但它仍然不是一件好事。 您应该仔细检查您的脚本运行的浏览器...您应该只检查所需方法的存在。