IE6/7/8/9中Table/Select的innerHTML不能赋值的解决方法

IE6/7/8/9中Table/Select的innerHTML赋值会报错,如下

IE6/7/8/9中TABLE的innerHTML不能赋值

try{
var table = document.createElement('table');
table.innerHTML = '

Test table innerHTML

'
document.body.appendChild(table);
}catch(e){
alert(e);
}

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

IE6/7 :

IE8 :

IE9 :

Firefox/Safari/Chrome/Opera中正常。Ext.DomHelper中使用div,把table添加到div中间接实现。

MSDN 写道

The property is read/write for all objects except the following, for which it is read-only: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR. The property has no default value.
DHTML expressions can be used in place of the preceding value(s). As of Internet Explorer 8, expressions are not supported in IE8 mode. For more information, see About Dynamic Properties.

Select元素的innerHTML也不能赋值,

IE6/7/8/9中Select的innerHTML不能赋值

try{
var select = document.createElement("select");
select.innerHTML = 'one';
document.body.appendChild(select);
}catch(e){
alert(e);
}

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

但不抛异常。

相关:
http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx 
https://developer.mozilla.org/en/dom:element.innerhtml 
http://www.w3.org/TR/html5/apis-in-html-documents.html#dom-innerhtml

(0)

相关推荐

  • 引入JS文件IE6报语法错误或缺少对象问题的解决方法

    解决"引入JS文件IE6报错"的问题 问题描述: 页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报"语法错误"或"缺少对象".在IE6+或者IE7却运行正常. 问题分析: 这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行.这个问题在于文件编码上,如果JS文件编码与当前页面的编码不一致,就可能导致在IE6中页面不能正常获取和解析JS文件中的内容,在IE6中,默认引入的文件和页面的编码

  • IE6不能修改NAME问题的解决方法

    The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method. 也就是说,你得这么写 复制代码 代码如下: documen

  • IE6支持position:fixed完美解决方法

    今天去一老外站看到了这他站上的十分平滑但却没有js,好奇,原来..巧妙啊,分享下,相对而言比较节省资源.但效果好,使用方便,兼顾w3c.哈哈 复制代码 代码如下: <!-- compliance patch for microsoft browsers --> <!--[if lt IE 7]><link rel="stylesheet" href="ie-stuff.css" type="text/css" med

  • IE6中ajax aborted错误请求中断解决方法

    给a标签绑定了一个click事件用来触发ajax请求,在IE6中,请求时常会被中断,在其他浏览器中都一切正常. 在IE6中使用Fiddler2和httpWatch监视请求,经常会出现"aborted",折腾了许久,相当的诡异.后来将a标签换成button,请求正常,最后经提醒,可能是a标签的默认事件中断了请求.但是,在HTML代码中,已经将a标签的href设置成了"javascript:void(0)",通常这样是可以阻止默认事件了(页面跳转).a标签的click事

  • location.href 在IE6中不跳转的解决方法与推荐使用代码

    以下内容为转帖: 代码 复制代码 代码如下: <script type="text/javascript"> function goUrl(x) { window.location.href=x; } </script> <a href="javascript:;" onclick="javascript:goUrl('http://www.baidu.com');">跳转1</a> <a h

  • IE6浏览器中window.location.href无效的解决方法

    本文实例讲述了IE6浏览器中window.location.href无效的解决方法.分享给大家供大家参考.具体方法如下: window.location.href是js中跳转功能,很多人在ie6中都会发现window.location.href不能跳转了,下面我给大家来介绍一下其原因与解决方法. 问题代码如下: 复制代码 代码如下: <a href="javascript:void(0);" onclick="javascript:test();">点击

  • IE6下CSS图片缓存问题解决方法

    用一句代码即可搞定: 复制代码 代码如下: document.execCommand("BackgroundImageCache", false, true); 当然为了其它浏览器上能正常通过,需要做下判断后调用,才更安全: 复制代码 代码如下: if(Browser.isIE6){ try{ document.execCommand("BackgroundImageCache", false, true); } catch(e1){} } 平台检测代码可以这样写,

  • IE6-IE9中tbody的innerHTML不能赋值的解决方法

    IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style="height:3000px"> <table&

  • IE6图片加载的一个BUG解决方法

    代码如下: 复制代码 代码如下: <!--[if IE 6]><script type="text/javascript"> try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} </script><![endif]--> 注:这个BUG以前就已经发现了,这里只是再次提出来. 更详细的说明可以参考下面的文章:IE6下默认不缓存背景图片,

  • IE6下javasc#ipt:void(0) 无效的解决方法

    IE 6 下,JSP 中 链接问题: <a href="javascript:void(0);" target="mainFrame" onClick="btnHome_onClick()"> <javascript> function btnHome_onClick(){window.open("com.mcl.common.main.InitHome.flow","mainFrame&qu

  • IE6-IE9不支持table.innerHTML的解决方法分享

    测试代码: 复制代码 代码如下: <table id="test"> </table> <script> var oTable=document.getElementById("test"); oTable.innerHTML="<tr><td>innerHTML</td></tr>"; </script> 上述代码在IE6-9中无效,直接报错: IE

随机推荐