最近做了一個項目,碰到了FireFox和IE腳本不相容的問題,為此從網上蒐集了部分兼容的腳本,另外自己也摸索了一點,原本寫在了自己另外一個博客裡,現拷過來供大家參考,原文
1.window.event相容腳本
2.屏蔽Form提交事件
3.取得事件來源
4.新增事件相容寫法
5.Firefox登錄innerText寫法
6.長度
5.Firefox登錄innerText寫法
6.長度
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 firefox3.取得事件來源var source=event.srcElement //IEvar source=event.target //firefox4.新增事件相容寫法(function oElement,sEvent,func){
if (oElement.attachEvent){oElement.attachEvent(sEvent,func);
}
else{
sEvent=sEvent.substring(2,sList.leL. ,func,false);
}
}
用法addEvent(window,"onload",Start);
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)!