[size=large][color=blue]
今天在和同事调试一个问题的时候,ie9在createElement的时候报错:DOM Exception: INVALID_CHARACTER_ERR (5),google了一番才发现IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入一个完整html标记的方式来创建Dom元素。所以需要判断浏览器的版本。
[/color][/size]
今天在和同事调试一个问题的时候,ie9在createElement的时候报错:DOM Exception: INVALID_CHARACTER_ERR (5),google了一番才发现IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入一个完整html标记的方式来创建Dom元素。所以需要判断浏览器的版本。
[/color][/size]
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 = "<input class='" +
String(opt.id) + "_class' " +
((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));
}