我在IE8中遇到e.preventDefault()
时遇到问题,因为它导致以下错误:
Object doesn't support property or method `preventDefault`
正如其他主题和Google上所见,使用e.returnValue
作为后备可以避免这种情况。在我的情况下,我正在使用一个插件,我不想在发生这种情况的每个部分进行修改。我想通过访问对象的原型重写Event.preventDefault
函数,但我不知道如何继续这里,我也无法找到任何相关信息。
这似乎是最明显和优雅的解决方案。这有可能实现吗?
答案 0 :(得分:3)
这就是我通常做的事情:
if (!Event.prototype.preventDefault)
Event.prototype.preventDefault = function() {
try {this.keyCode = 0;} catch (e) {}
this.returnValue = false;
}
嗯,是最明显的解决方案。我无法准确记住何时,但有时您需要将keyCode
属性设置为0
以正确防止键盘事件。
注意:这只适用于IE8 ,因为IE7没有Event
构造函数。