ホームページ > 記事 > ウェブフロントエンド > Firefoxブラウザと互換性のあるJSスクリプト
私は最近、あるプロジェクトに取り組んでいて、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 )
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) に注目してください。