JavaScript 覆蓋document.createElement 方法

最近項目遇到瞭問題,有個asp.net web程序隻能在IE7 運行,現在xp都淘汰瞭,大傢都用IE8-IE11,因此這個web app也需要升級 適應所有IE版本。照成IE版本不兼容的問題主要來致document.createElement方法的調用,如:

function addStyleNo(value, cannotDel) {
if (!value) {
value = ”;
}
var tb = $(‘tbodyStyle’);
var tr = tb.insertRow();
var td1 = tr.insertCell();
td1.style.width = ’20px’;
td1.style.height = ’20px’;
if (!cannotDel) {
var imgDel = document.createElement(““);
td1.appendChild(imgDel);
}

var td2 = tr.insertCell();
td2.style.height = ’20px’;
var txt = document.createElement(“”);
td2.appendChild(txt);

}

這個系統的js太多太多,大傢對這個系統的業務也不熟悉,我先前是把這個document.createElement 用jquery來代替,

var imgDel = jq(““)[0];

var txt = jq(“”)[0];

後來發現要改的地方太多瞭。於是想想有沒有簡單的方法, 最後把矛頭指向覆蓋document.createElement 方法的實現。

document.createEl = document.createElement;
document.createElement = function (obj) {
if (obj.toString().indexOf(” -1) {
return jq(obj)[0];
}
else {
return document.createEl(obj);
}
}

目前在ie下還沒有發現什麼異常情況。

You May Also Like