ホームページ  >  記事  >  ウェブフロントエンド  >  Firefoxブラウザと互換性のあるJSスクリプト

Firefoxブラウザと互換性のあるJSスクリプト

黄舟
黄舟オリジナル
2016-12-14 16:00:231409ブラウズ

私は最近、あるプロジェクトに取り組んでいて、FireFox と IE のスクリプト間の非互換性の問題に遭遇しました。この目的のために、互換性のあるスクリプトをインターネットから収集しました。また、最初に自分の別のブログに書いたものについても少し調べました。参考までに、元のテキストをコピーしておきます

1.window.event 互換のスクリプト
2. フォーム送信イベントを取得します
4. イベント互換の書き込みを追加します。 5. Firefox の登録 innerText の書き込み
6. 親コントロールのサブコントロール
while(func!=null){
var arg0=func.arguments ;
if(arg0){
if((arg0.constructor==Event arg0.constructor ==MouseEvent )

(typeof(arg0)=="object" %26amp;%26amp; arg0.preventDefault %26amp;%26amp; arg0.stopPropagation)){

return arg0;

}

}

func=func.caller;

}

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

2. フォーム送信イベントをブロックします

event.returnValue=false;// IE

evt の場合、preventDefault();//イベントソースを取得します

varsource=even .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); ,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 では「子」です。 FireFox の "childNodes"

8. Send(" ") を使用する必要があります。そうでないと 411 エラーが発生します

その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。




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