1

很直接的问题。< IE8 不支持event.preventDefault(),所以我想修改Event.prototypeIE 以添加我自己的preventDefault方法,使用event.returnValue. 简单的任务,但这是一个坏主意吗?

4

2 回答 2

1

到目前为止,在我看来,这个问题的最佳答案是这不是一个坏主意。这并不意味着在一般情况下使用原型或什至使用其他方法Event是一个好主意,但规范化event.preventDefault()似乎完全无害——不,有帮助。

如果您能提供更好的答案,请加入。

于 2013-05-03T20:14:19.663 回答
0

你永远不应该像那样操作本机代码。您应该拥有进行特征检测并执行正确行为的代码。

如果您操纵浏览器原型,您将面临与插件冲突的风险,因为没有作者期望这样做。例如,chrome 插件覆盖了某个破坏 TinyMCE 的属性。这很令人沮丧。

网络不是一个紧凑的盒子,所以你不能假装只有你在使用浏览器。

这个问题已经向您展示了正确的方法:

event.preventDefault() 函数在 IE 中不起作用

评论中的这段代码可能最适合您:

if (event.preventDefault) { 
  event.preventDefault(); 
} else { 
  event.returnValue = false; 
} 
于 2013-05-02T15:55:10.847 回答