Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410251
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: Web开发

2013-01-21 12:23:15

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

Js代码: 

  1. if (!is_ie678()) { 
  2.             // firefox,chrome,ie9以上版本处理 
  3.             new_name_item = document.createElement("input"); 
  4.             new_name_item.name = opt.id; 
  5.             new_name_item.checked = true; 
  6.  
  7.             new_name_item.type = "checkbox"; 
  8.             new_name_item.className = opt.id + "_class"; 
  9.             // 如果是单选 
  10.             if (opt.multiuser != 'multiuser') { 
  11.                 new_name_item.setAttribute("onclick", "checkSelectStatus(this, '" + opt.id + "_class')"); 
  12.             } 
  13.         } else { 
  14.         // ie678下处理 
  15.             var html = "
  16.                 ((opt.multiuser == 'multiuser') ? "" : "onclick=\"checkSelectStatus(this, '" + opt.id + "_class')\"") + " name='" +  
  17.                 opt.id + "' checked='checked' type='checkbox'/>"; 
  18.  
  19.             new_name_item = document.createElement(html); 
  20.         } 
  21.  
  22. function is_ie678(){ 
  23.    return is_ie() && ((window.ScriptEngineMinorVersion()==7) || (window.ScriptEngineMinorVersion()==8)); 

原文参考自站长网

阅读(1281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~