ホームページ  >  記事  >  ウェブフロントエンド  >  FirefoxやIEブラウザに対応したJSスクリプトの書き方まとめ_JavaScriptスキル

FirefoxやIEブラウザに対応したJSスクリプトの書き方まとめ_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 19:03:051094ブラウズ


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 . constructor==Event arg0.constructor ==MouseEvent)
(typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
return arg0;
}
func=func.caller;
}
return null;
}

イベントを使用する前に、Firefox は getEvent() を使用する必要があります。空

2. フォーム送信イベントをシールドします

event.returnValue=false;// IE の場合

evt.preventDefault();// 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」です。 "childNodes"

8 .XmlHttp

IE では、XmlHttp.send(content) メソッドのコンテンツは空にすることができますが、Firefox では Send(" ") を空にすることはできません。使用しないと、411 エラーが発生します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。