`

ie9DOM Exception: INVALID_CHARACTER_ERR (5) 的解决

阅读更多

      今天在和同事调试一个问题的时候,ie9在createElement的时候报错:DOM Exception: INVALID_CHARACTER_ERR (5),google了一番才发现IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入一个完整html标记的方式来创建Dom元素。所以需要判断浏览器的版本。

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));
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics