ホームページ > ウェブフロントエンド > jsチュートリアル > Javascript Event_javascript スキルにおける IE と標準 DOM の比較

Javascript Event_javascript スキルにおける IE と標準 DOM の比較

WBOY
リリース: 2016-05-16 18:28:56
オリジナル
1203 人が閲覧しました
1. イベント ストリームの違い

IE はバブリング イベントを使用 Netscape はキャプチャ イベントを使用 DOM は最初にバブリング イベントをキャプチャしてから使用します
例:
コードをコピー コードは次のとおりです。




をクリックします。ここでは



バブル イベント モデル: button->div-> )

キャプチャ イベント モデル: body->div->button (Netscape イベント フロー)

DOM イベント モデル: body->div->button->gt ;button->gt ;div->body (最初にキャプチャしてからバブル)

2. イベント リスニング関数の違い

IE の使用:
[ Object].attachEvent ("name_of_event_handler", fnHandler); //バインディング関数
[Object].detachEvent("name_of_event_handler", fnHandler); //バインディングを削除します

DOM の使用法:
[Object].addEventListener( "name_of_event", fnHandler, bCapture); //バインディング関数
[Object].removeEventListener("name_of_event", fnHandler, bCapture); //バインディングを削除します

bCapture パラメータはステージを設定するために使用されますイベント バインディングの、true はキャプチャ ステージ、false はバブリング ステージです。

サンプルコード:
コードをコピー コードは次のとおりです:

function addEventHandler( object,eventType, fnHandler){
if(object.addEventListener){ //DOM
object.addEventListener(eventType, fnHandler, false)
}else if(object.attachEvent){ / /IE
object.attachEvent("on"eventType, fnHandler);
}else{ //その他
object["on"eventType]=fnHandler; function removeEventHandler( object,eventType, fnHandler){
if(object.removeEventListener){ //DOM
object.removeEventListener(eventType, fnHandler, false){ // /IE
object.detachEvent("on"eventType, fnHandler);
}else{ //その他
object["on"eventType]=null; addEventHandler(oDiv ,"click",function(){alert("clicked")});




3. イベントオブジェクトの配置(取得)


IE: イベント オブジェクトはウィンドウ オブジェクトの属性イベントです。イベント処理関数が実行された後、イベント オブジェクトは破棄されます。

例:


コードをコピー


コードは次のとおりです:DOM: イベント オブジェクトは唯一のパラメーターとしてイベント ハンドラーに渡される必要があります。最初のパラメータになります。

例:



コードをコピー


コードは次のとおりです:
4. ターゲット (target) を取得します。
IE :var oTarget=oEvent.srcElement;
DOM: var oTarget=oEvent.target;


5. ブロック イベントのデフォルト動作

oEvent.returnValue= false; DOM: oEvent.preventDefault();

例:


コードをコピーします。 > コードは次のとおりです:


//Web ページの右クリック メニューをブロックします
document.body.oncontextmenu=function(oEvent){
if(document.all ){
oEvent=window.event; oEvent.returnValue=false; }else{ oEvent.preventDefault() }
6. イベントのコピーを停止します (バブル)

IE: oEvent.cancelBubble=true;
DOM:

例:




コードをコピー

コードは次のとおりです。

button.onclick=function(oEvent ){
if(document.all){
oEvent=window.event;
oEvent.cancelBubble=true;
}else{
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート