我在IE8中遇到e.preventDefault()
的问题,因为它导致以下错误:
Object doesn't support property or method `preventDefault`
正如其他线程和Google所见,可以通过使用
e.returnValue
作为后备来避免这种情况。在我的情况下,我使用的插件不想在发生这种情况的每个部分中进行修改。我当时正在考虑通过访问对象的原型来重写Event.preventDefault
函数,但是我不确定如何进行此操作,也无法找到任何有关此信息。这似乎是最明显,最优雅的解决方案。这有可能实现吗?
最佳答案
这通常是我要做的:
if (!Event.prototype.preventDefault)
Event.prototype.preventDefault = function() {
try {this.keyCode = 0;} catch (e) {}
this.returnValue = false;
}
好吧,这是最明显的解决方案。我不记得是什么时候,但是有时您需要将
keyCode
属性设置为0
才能正确防止键盘事件。注意:这仅在IE8中有效,因为IE7没有
Event
构造函数。关于javascript - 重写IE8的e.preventDefault(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17338840/