IE FireFox互換のwindow.event
1863 ワード
まずコードを見ます.
上のコードはIEとFireFoxの両方で実行できます.効果は同じです.上のコードにはいくつかの注意が必要です.
1、着信呼び出し方法のイベント変数が必ず「イベント」であれば、他の文字は代替できません.しかし位置は限らない.
2、イベント変数のクリック対象取得は、IEとfirefoxでも異なります.IEで使用します.targetで取得します.FireFoxeは.srcelementで取得します.
その他の互換性の問題
1、IEのイベントオブジェクトはx、y属性があり、pageX、pageY属性がない.FireFoxにはpageX、pageY属性があり、x、y属性はありません.
2、続きは..
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
function testEvent(){
var target = window.event.srcElement ;
document.getElementById('result').innerHTML = target.tagName;
}
</script>
</HEAD>
<BODY>
<div id="result"></div>
<input type="button" value=" " onclick="javascript:testEvent()"/>
</BODY>
</HTML>
このコードのIEブラウザでの効果は、ボタンをクリックすると、画面に「input」と表示されます.しかし、FireFoxでボタンを押すとエラーが発生します.window.event is undefined.これは、FireFoxの下でwindow.eventはイベント発生現場でしか使用できないからです.つまり、イベント変数はメソッド呼び出し先に入ってくる必要があります.下のコードを見てください.<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
function testEvent(number,ev){
var target = ev.srcElement || ev.target;
document.getElementById('result').innerHTML = target.tagName+ number;
}
</script>
</HEAD>
<BODY>
<div id="result"></div>
<input type="button" value=" " onclick="javascript:testEvent(20,event)"/>
<script type="text/javascript">
//testEvent();
</script>
</BODY>
</HTML>
上のコードはIEとFireFoxの両方で実行できます.効果は同じです.上のコードにはいくつかの注意が必要です.
1、着信呼び出し方法のイベント変数が必ず「イベント」であれば、他の文字は代替できません.しかし位置は限らない.
2、イベント変数のクリック対象取得は、IEとfirefoxでも異なります.IEで使用します.targetで取得します.FireFoxeは.srcelementで取得します.
その他の互換性の問題
1、IEのイベントオブジェクトはx、y属性があり、pageX、pageY属性がない.FireFoxにはpageX、pageY属性があり、x、y属性はありません.
2、続きは..