我需要代码才能使用IE6 +,只是想检查一下我没有错过任何浏览器的支持。
此代码有效,我已在IE7,FF10,Google Chrome 17上测试过,但我没有其他浏览器可供测试。我想知道其他人是否已经这样做并知道代码是什么,我是否错过了对使用我的代码的任何浏览器的支持:
if (!e) e = window.event;
e.returnValue = false;
if (e.preventDefault) e.preventDefault();
return false;
答案 0 :(得分:3)
preventDefault()是一个w3c DOM Level 2标准,所以它应该由所有现代浏览器实现。
IE6不是现代浏览器,它不实现DOM Level 2或preventDefault()
。替代IE6使用设置event.returnValue
到false
,正如您所做的那样。请注意,这不会影响事件冒泡(在IE6中,可以通过将event.cancelBubble
设置为true来实现)。因此,您的代码应该可以在IE6以及所有现代浏览器中使用,以防止默认操作而不会停止传播。
但是如果您不需要,我会重新构造代码以不在事件上设置任何属性:
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}