DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> IE和Firefox下編寫Javascript的區別(5)
IE和Firefox下編寫Javascript的區別(5)
編輯:CSS詳解     

以下所有IE指IE6.0

驗證是否是IE浏覽器(來之於googleJavascript)

varagt=navigator.userAgent.toLowerCase();
varis_IE=(agt.indexOf("msIE")!=-1&&document.all);
正式開始

◆事件委托方法

IE

document.body.onload=inject;//Functioninject()在這之前已被實現

Firefox

document.body.onload=inject();

有人說標准是:

document.body.onload=newFunction('inject()');

在Firefox無法取得event.srcElement

◆通過其他方式傳遞對象

  1. if(isIE)
  2. thistable.attachEvent("onmousedown",OnClickChangeTdBackColor);
  3. //thistable.onmousedown=OnClickChangeTdBackColor;
  4. else//dealFirefox
  5. {
  6. for(vari=0;i<thistable.rows.length;i++)
  7. {
  8. varrowObj=thistable.rows[i];
  9. for(varj=0;j<rowObj.cells.length;j++)
  10. {
  11. varcellObj=rowObj.cells[j];
  12. cellObj.setAttribute("onmousedown","OnClickChangeTdBackColor(this)");
  13. }
  14. //alert(rowObj.cells[0].tagName);
  15. }
  16. }

◆在Firefox下編寫事件處理函數

因為Firefox並沒有window.event.如果要得到event對象,就必須要聲明時間處理函數的第一個參數為event.

所以為了兼容IE與Firefox,一般的事件處理方法為:

  1. btn.onclick=handle_btn_click;
  2. functionhandle_btn_click(evt)
  3. {
  4. if(evt==null)evt=window.event;//IE
  5. //處理事件.
  6. }

對於簡單的程序,這不算麻煩.

但對於一些復雜的程序,某寫函數根本就不是直接與事件掛鉤的.如果要把event傳進該參數,那麼所有的方法都要把event傳來傳去..這簡直就是噩夢.

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved