別のブラウザを取得するイベントソースのアプローチは、ブラウザから茎れ、異なっているが、異なる属性がイベントを定義するために、のは、同じイベントの多くは別のブラウザの互換性の問題を見てみましょう別のブラウザを使用して設計されました。
1.イベント処理
イベントソース属性別のブラウザにこの問題を解決するために同じではありません我々はメソッドを書いている、書き込み方法の互換性は、イベントソースを取得します。
キーボードイベント
fuction KEYDOWN(EV){ VAR電子= EV || window.event; VARキー= e.target || e.srcElement; IF(キー==のkeyCode){ // ... } }
マウスイベント
マウス機能(EV){ VAR EV E = || window.event; //イベントソースの座標を取得し、 VAR = e.target ||キーe.srcElement //またはマウスボタン }
2.イベント・リスナー
オブジェクトが異なる方法によるものは、別のブラウザを監視し、イベントリスナメソッドでイベントにバインドされている場合、いくつかの処理を行います
目的球addEvent(ELE、タイプ、CB){ リターンele.attachEvent ele.attachEvent(+タイプ、CB "オン"):ele.addEventListener(タイプ、CB)。 }
イベントを削除するにはオブジェクトの互換性の問題があります
関数removeEvent(ELE、タイプ、CB){ ele.detachEventを返しますか?ele.detachEvent(タイプ、CB):ele.removeEvent(+タイプ、CB "オン")。 }
3.イベントバブリング
ボックス内のHTMLは、それがイベントのバブリングを停止するには、この問題を解決するために、親の体にイベントバブリングと呼ばれる現象をトリガイベントの内部に浸透します
stopBubble機能(E){ window.stopPropagationを返しますか?e.stopPropagation():e.cancelBubble =はtrue。 }
IEブラウザでは、この方法をバブリングイベントが、プロパティではありません。
4.イベントの委任
イベント関数obj.on + =(イブ){ E = || window.eventするvarイブ; VAR = e.targetタール|| e.srcElement; //条件が満たされているかどうか、現在のイベント・ソース、およびその他のオブジェクトを決定し イベントを結合// }
ブラウザカーネルは、それが異なる言語で書かれた、異なる思考これらのデザイナーの調製に同じ、異なるメーカー、異なるブラウザではないため、ブラウザの互換性の問題の多くは、あります。プログラマのために、より多くの問題を解決するために以下のコードは、必要に応じて私たちのプログラマの基本的な品質があります