2

e.preventDefault()次のエラーが発生しているため、IE8で問題が発生しています。

Object doesn't support property or method `preventDefault` 

他のスレッドや Google で見られるように、これはe.returnValueフォールバックとして使用することで回避できます。私の状況では、これが発生するすべての部分で変更したくないプラグインを使用しています。オブジェクトのプロトタイプにアクセスして関数を書き直すことを考えていましたEvent.preventDefaultが、ここでどのように進めればよいかわかりません。これに関する情報も見つかりません。

これは、最も明白でエレガントなソリューションのようです。これを達成することは可能ですか?

4

1 に答える 1

3

これは私が通常行うことです:

if (!Event.prototype.preventDefault)
    Event.prototype.preventDefault = function() {
        try {this.keyCode = 0;} catch (e) {}
        this.returnValue = false;
    }

まあ、それ最も明白な解決策です。いつだったか正確には覚えていませんが、キーボード イベントを正しく防止するためにkeyCodeプロパティをに設定する必要がある場合があります。0

注: IE7 にはコンストラクターがないため、これは IE8でのみ機能します。Event

于 2013-06-27T09:02:15.633 に答える