Event は IE に付属するオブジェクトですが、FF にはこのオブジェクトは存在しません。イベントはパラメーターを渡すことによってのみシミュレートできます。
また、イベントトリガーソースの取得にはIEではsrcElement、FFではtargetを使用します。したがって、これら 2 つのオブジェクトを使用する場合は、関連するブラウザーの互換性を確保する必要があります。
次のようにコードをコピーします。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<頭>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>srcElement --//www.VeVB.COm/</title>
<script type="text/javascript">
<!--
関数クリック(イベント){
イベント = イベント: window.event?
var obj = イベント.srcElement? イベント.srcElement:event.target;
アラート(obj.タグ名);
}
//-->
</script>
</head>
<本文>
<button id="btn" onclick="Click(event)">クリック</button>
</body>
</html>
実行結果の表示
前のセクションのattachEventとaddEventListenerを包括します。
次のようにコードをコピーします。
<script type="text/javascript">
<!
関数クリック(イベント){
イベント = イベント: ウィンドウ.イベント;
var obj = イベント.srcElement? イベント.srcElement:event.target;
alert("eventObj.tabName:" + obj.tagName);
}
var oBtnNew;
window.onload=function(){
oBtnNew=document.getElementById("btnNew");
if(window.attachEvent){
oBtnNew.attachEvent("onclick",hanlder);
oBtnNew.attachEvent("onmouseover",hanlder);
}それ以外{
oBtnNew.addEventListener("click",hanlder,false);
oBtnNew.addEventListener("マウスオーバー",ハンドル,false);
}
/* または次のテストを使用します
oBtnNew.onclick=ハンドル;
oBtnNew.onmouseover=ハンドル;*/
}
関数ハンドラー(イベント){
イベント=イベント?イベント:ウィンドウ.イベント;
if(event.type=="クリック")
oBtnNew.innerHTML="onclick イベントが発生しました";
else if(event.type=="マウスオーバー")
oBtnNew.innerHTML="onmouseover イベントが発生しました";
}
//>
</script>
</head>
<本文>
<button id="btn" onclick="Click(event)">クリック</button>
<button id="btnNew">イベントの追加クリック</button>