賽迪網 > IT技術 Java > Java熱點
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

Firefox瀏覽器相容Javascript腳本的方法

發佈時間:2008.07.02 05:42     來源:賽迪網    作者:sixth

遇到了FireFox和IE腳本不相容的問題

1.window.event相容腳本

function getEvent(){ //獲取瀏覽器事件,同時相容ie和ff的寫法 
if(document.all) return window.event; 
func=getEvent.caller; 
while(func!=null){ 
var arg0=func.arguments[0]; 
if(arg0){ 
if((arg0.constructor==Event    arg0.constructor ==MouseEvent) 
   (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ 
return arg0; 
} 
} 
func=func.caller; 
} 
return null; 
}

每次用事件之前Firefox都需要用getEvent()獲取一下,否則就是空

2.遮罩Form提交事件

event.returnValue=false;// for IE 

evt.preventDefault();//for firefox

3.獲取事件源

var source=event.srcElement //IE 

var source=event.target //firefox

4.添加事件相容寫法

function addEvent(oElement,sEvent,func){ 
if (oElement.attachEvent){ 
oElement.attachEvent(sEvent,func); 
} 
else{ 
sEvent=sEvent.substring(2,sEvent.length); 
oElement.addEventListener(sEvent,func,false); 
} 
}

用法:addEvent(window,"onload",Start);

5.Firefox註冊innerText寫法

//註冊firefox innerText 
HTMLElement.prototype.__defineGetter__("innerText", 
function(){ 
var anyString = ""; 
var childS = this.childNodes; 
for(var i=0; i if(childS[i].nodeType==1) 
anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText; 
else if(childS[i].nodeType==3) 
anyString += childS[i].nodeValue; 
} 
return anyString; 
} 
); 
HTMLElement.prototype.__defineSetter__("innerText", 
function(sText){ 
this.textContent=sText; 
} 
);

6.長度:FireFox長度必須加“px”,IE無所謂

7.父控件下的子控件:IE是“children”,FireFox是“childNodes”

8.XmlHttp

在IE中,XmlHttp.send(content)方法的content可以為空,而firefox則不能為空,應該用send(" "),否則會出現411錯誤。

(責任編輯:雲子)


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· 區分Tomcat與Web伺服器、應用伺服器的關係 (07-01) · JS技巧:在IE瀏覽器中正確顯示PNG透明圖片 (06-30)
· 新手學堂:rs.open與conn.execute詳細解釋 (06-30) · 安全實測之瀏覽器記憶體佔用 Firefox 3勝出 (06-30)
· 使用Java程式連接各種數據庫的方法介紹 (06-30) · 開源框架Hibernate3的新特性以及發展趨勢 (06-30)
· Sun預計在年底之前將公開全部Java源代碼 (06-27) · 實例解析:PHP程式開發中的中文編碼問題 (06-27)
· PHP5程式中新增加日期(date)函數的常量 (06-27) · 使用PHP程式直接調用文本文件的內容實例 (06-27)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 移動資訊化市場方興未艾 企業呼喚標準出臺
· 如何把握企業價值差異 避免CRM與SCM脫節
· 齊看四大廠商的SaaS動態 ERP案例分析
· 通方期貨CRM解決方案 方正電子公文系統
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統