今天在和同事调试一个问题的时候,ie9在createElement的时候报错:DOM Exception: INVALID_CHARACTER_ERR (5),google了一番才发现IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入一个完整html标记的方式来创建Dom元素。所以需要判断浏览器的版本。
Js代码:
-
if (!is_ie678()) {
-
// firefox,chrome,ie9以上版本处理
-
new_name_item = document.createElement("input");
-
new_name_item.name = opt.id;
-
new_name_item.checked = true;
-
-
new_name_item.type = "checkbox";
-
new_name_item.className = opt.id + "_class";
-
// 如果是单选
-
if (opt.multiuser != 'multiuser') {
-
new_name_item.setAttribute("onclick", "checkSelectStatus(this, '" + opt.id + "_class')");
-
}
-
} else {
-
// ie678下处理
-
var html = "
-
((opt.multiuser == 'multiuser') ? "" : "onclick=\"checkSelectStatus(this, '" + opt.id + "_class')\"") + " name='" +
-
opt.id + "' checked='checked' type='checkbox'/>";
-
-
new_name_item = document.createElement(html);
-
}
-
-
function is_ie678(){
-
return is_ie() && ((window.ScriptEngineMinorVersion()==7) || (window.ScriptEngineMinorVersion()==8));
-
}
原文参考自站长网:
阅读(1323) | 评论(0) | 转发(0) |