ホームページ >ウェブフロントエンド >jsチュートリアル >IE と FireFox の間の JavaScript 互換性問題の解決策_javascript のヒント

IE と FireFox の間の JavaScript 互換性問題の解決策_javascript のヒント

WBOY
WBOYオリジナル
2016-05-16 17:05:581045ブラウズ

開発中に私が遭遇したものは次のとおりです:

1. テーブル内の行を動的に削除します。

table: テーブルオブジェクトを表します。

k: 行番号を表します

table.rows[k].removeNode(true); //Firefox の実行は失敗しました、つまり実行は成功しました

IE および FireFox 互換の書き込み

table.deleteRow(k);

2. HTML タグの属性をカスタマイズします。

inputElement: フォーム要素を表します。

propertyName: フォーム要素

の下にある特定のプロパティを表します。

inputElement.propertyName; //Firefox の実行は失敗しました、つまり実行は成功しました

IE、FireFox互換の書き込み方法

document.getElementById("txtInput").attributes["idvalue"].nodeValue

3. 指定された位置に HTML 要素を挿入します。

inputElement: フォーム要素を表します。

vDiv: 挿入される HTML 要素を表します。

inputElement.insertAdjacentElement("AfterEnd",vDiv);//Firefox の実行は失敗しました、つまり実行は成功しました

IE および FireFox 互換の書き込み

Firefox ではこのメソッドの定義がないため、このメソッドを呼び出す必要がある場合は自分で再定義する必要があります。

コードをコピー コードは次のとおりです:

// insertAdjacentElement() メソッドを書き直します。 Firefoxにはそのようなメソッドはありません
HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode){
switch(where){
case "beforeBegin":
This.parentNode.insertBefore(parsedNode 、これ);
休憩;
🎜> This.parentNode.insertBefore(parsedNode,this.nextSibling);
else
this.parentNode.app endChild(parsedNode);
Break;
}
}


4. Break ステートメントが無効です。

IE で for ループ ステートメントを実行する場合、break を使用して現在のループから抜け出すことができます。しかし、FFではループ全体から抜けることになります。現時点では、代わりに continue ステートメントを使用してください。

5. Firefox は、文字列に無効な文字が含まれていると報告します。

var chkBox=document.createElement('') //IE で正常に実行されました

IE および FireFox 互換の書き込み

Firefox はこの createElement の定義方法をサポートしていないため、段階的に行う必要があります:


var chkBox = document.createElement('input');
chkBox.name = "treeBox";
chkBox.type = "checkbox";

chkBox.value = key;


6. テーブル オブジェクト (テーブル行) オブジェクトのコレクション
bdList.rows(k) ).cells(0).innerHTML = "aaa";//Firefox の実行は失敗しました。つまり、実行は成功しました

IE と FireFox 互換の書き込み

コードをコピー コードは次のとおりです:

bdList.rows[k].cells[0].innerHTML = "aaa";

7. () Firefox のメソッドの問題

var today = new date();
var year = today.get Year();
Firefox では、get Year は「現在の年 - 1900」の値を返します。
いつ、今日、いつ2000年未満であればFirefoxと同じです。したがって、

を呼び出すには getFullyear getUTCFulyear を使用するのが最善です。

IE と FireFox 互換の書き込み

コードをコピー コードは次のとおりです:

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