ie9DOM Exception: INVALID_CHARACTER_ERR (5) 的解决

本文介绍了在IE9中创建DOM元素时遇到的问题及解决方法。由于IE9开始严格遵循标准,不能直接使用完整的HTML标签创建元素。文中提供了一个示例代码,展示了如何根据不同版本的IE浏览器和其他现代浏览器进行适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=large][color=blue]
今天在和同事调试一个问题的时候,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));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值