在浏览器上禁用javascript

时间:2010-04-10 02:43:50

标签: javascript internet-explorer scripting

有没有办法为所有浏览器禁用某个脚本?

4 个答案:

答案 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的存在......但它仍然不是一件好事。 您应该仔细检查您的脚本运行的浏览器...您应该只检查所需方法的存在。