首頁  >  文章  >  web前端  >  相容Firefox瀏覽器的JS腳本

相容Firefox瀏覽器的JS腳本

黄舟
黄舟原創
2016-12-14 16:00:231408瀏覽

最近做了一個項目,碰到了FireFox和IE腳本不相容的問題,為此從網上蒐集了部分兼容的腳本,另外自己也摸索了一點,原本寫在了自己另外一個博客裡,現拷過來供大家參考,原文

1.window.event相容腳本 
2.屏蔽Form提交事件 
3.取得事件來源 
4.新增事件相容寫法 
5.Firefox登錄innerText寫法 
6.長度 
5.Firefox登錄innerText寫法 
6.長度 

5.Firefox登錄innerText寫法 

6.長度 

7.下父的子控制 

8.XmlHttp

 

1.window.event相容腳本

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

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

2.屏蔽Form提交事件

event.returnValue=false;// for IE

. preventDefault();//for firefox

3.取得事件來源

var source=event.srcElement //IE

var source=event.target //firefox

4.新增事件相容寫法

(function oElement,sEvent,func){ 

if (oElement.attachEvent){ 

oElement.attachEvent(sEvent,func); 

else{ 
sEvent=sEvent.substring(2,sList.leL. ,func,false); 

}

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

5.Firefox註冊innerText寫法

//註冊__firefox inner"Text

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; 

);
this.textContent=sText; 

);
this.textContent=sText; 

);

.textContent=sText; 

);

7.父控制項下的子控制項IE是“兒童”,FireFox是“childNodes”

8.XmlHttp

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


 更多相關文章請關注PHP中文網(www.php.cn)!


🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn