JSはIEとFireFoxの間の一般的な関数の違いの結び目

9485 ワード

1.event.srcele ment
 
  
//srcElement IE target FireFox ,
var obj = e.srcElement ? e.srcElement : e.target;
2.e.originalEvent.x
 
  
// e.originalEvent.x IE ,FireFox e.originalEvent.layerX,
var positionX = e.originalEvent.x - $(this).offset().left || e.originalEvent.layerX - $(this).offset().left || 0;
3.ウィンドウズ.イベント
window.eventはIEの下でしか実行できません.Firefoxでは実行できません.
これはFirefoxのイベントはイベントが発生した場合のみ使用できるからです.
IE:
 
  


<br> <br>function test1() { <br>alert(window.event); // window.event <br>} <br>function test2(evt) { <br>evt=evt?evt:(window.event?window.event:null); <br>alert(evt); // evt <br>} <br>
以下は一例です.
画面でバックをクリックするとイベントは発生しませんが、TextAreaのようなボックスでバックをクリックしてイベントが発生します.みんなはコードを修正して自分で使うことができます.
 
  




s
<br> <br> <br>document.onkeydown=keypage <br> <br>function keypage(e) { <br> <br>eevt=e?e:(window.event?window.event:null); <br> <br>if (evt.keyCode==13) { <br> <br>if (window.XMLHttpRequest) { // IE7 FF MO <br>//alert(( evt ? evt.explicitOriginalTarget : null).tagName) <br> <br>if(( evt ? evt.explicitOriginalTarget : null).tagName =="TEXTAREA"){ <br>var obj = evt ? evt.explicitOriginalTarget : null; <br>alert("ID:="+obj.id) <br>} <br>} else { // IE6 <br>if(document.activeElement.type== "textarea") { <br>var obj = document.activeElement <br>alert("ID:="+obj.id) <br>} <br>} <br>} <br>}