開発中に私が遭遇したことは次のとおりです。
1. テーブル内の行を動的に削除します。
table: テーブルオブジェクトを表します。
k: 行番号を表します
table.rows[k].removeNode(true); //Firefox の実行は失敗します。つまり、実行は成功します。
IE、FireFox互換の書き込み方法
table.deleteRow(k);
2. HTML タグの属性をカスタマイズします。
inputElement: フォーム要素を表します。
propertyName: form 要素の下のプロパティを表します。
inputElement.propertyName; //Firefox の実行に失敗しました。つまり、実行は成功しました。
IE、FireFox互換の書き込み方法
document.getElementById("txtInput").attributes["idvalue"].nodeValue
3. 指定された場所に HTML 要素を挿入します。
inputElement: フォーム要素を表します。
vDiv: 挿入される HTML 要素を表します。
inputElement.insertAdjacentElement("AfterEnd",vDiv);//Firefox の実行に失敗しました。つまり、実行は成功しました。
IE、FireFox互換の書き込み方法
Firefox ではこのメソッドの定義がないため、このメソッドを呼び出す必要がある場合は自分で再定義する必要があります。
次のようにコードをコピーします。
//Firefox にはそのようなメソッドがないため、insertAdjacentElement() メソッドを書き直す
HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode){
スイッチ(どこ){
ケース「開始前」:
this.parentNode.insertBefore(parsedNode,this);
壊す;
ケース「開始後」:
this.insertBefore(parsedNode,this.firstChild);
壊す;
ケース「beforeEnd」:
this.appendChild(parsedNode);
壊す;
ケース "afterEnd":
if(this.nextSibling)
this.parentNode.insertBefore(parsedNode,this.nextSibling);
それ以外
this.parentNode.appendChild(parsedNode);
壊す;
}
}
4. ブレーク文が不正です。
IE で for ループ ステートメントを実行する場合、break を使用して現在のループから抜け出すことができます。しかし、FFではループ全体から抜けることになります。現時点では、代わりに continue ステートメントを使用してください。
5. Firefox は、文字列に無効な文字が含まれていると報告します。
var chkBox=document.createElement('<input type="Checkbox" name="treeBox" value= '+key+''>'); //IE で正常に実行されました。
IE、FireFox互換の書き込み方法
Firefox はこの createElement の定義方法をサポートしていないため、段階的に行う必要があります。
次のようにコードをコピーします。
var chkBox = document.createElement('input');
chkBox.name = "ツリーボックス";
chkBox.type = "チェックボックス";
chkBox.value = キー;
6. テーブルオブジェクト(テーブル行)オブジェクトのコレクション
bdList.rows(k).cells(0).innerHTML = "<a>aaa</a>";//Firefox の実行に失敗しました。つまり、実行は成功しました。
IE、FireFox互換の書き込み方法
次のようにコードをコピーします。
bdList.rows[k].cells[0].innerHTML = "<a>aaa</a>";
7. Firefox の JS の get Year() メソッドの問題
var today = 新しい日付();
var year = today.get Year();
Firefox では、get Year は「現在の年 - 1900」の値を返します。 IE では、次のようになります。
今日の西暦が 2000 年未満の場合は、Firefox と同じです。したがって、getFullyear getUTCFulyear を使用して呼び出すのが最善です
IE、FireFox互換の書き込み方法
次のようにコードをコピーします。
var today = 新しい日付();
var year = today.getFull Year();