`
zhouyrt
  • 浏览: 1140990 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IE6/7/8中Table元素的innerHTML不能赋值

    博客分类:
  • BUG
阅读更多

IE6/7/8中Table不能设置innerHTML属性,会报错,重现如下:

<!DOCTYPE HTML>
<html>
<head>
<title>TABLE 的 innerHTML Bug</title>
</head>
<body>
<script type="text/javascript">
	
var table = document.createElement('table');
table.innerHTML = '<tr><td>Test table innerHTML</td></tr>'
document.body.appendChild(table);

</script>

</body>
</html>
 

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.
 

相关:

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

 

注:Select元素也存在相同的情况。

 

 

 

 

11
2
分享到:
评论
5 楼 tangjikey 2012-04-20  
ie9还是这样。
4 楼 jj7jj7jj 2011-08-28  
tbody加上就好了
3 楼 shenshuibomb 2011-02-25  
select的innerHTML在IE下也是只读的(我的是IE8).使用的方法也是在select元素外加一个div层,然后对div进行操作,重新写整个select元素。
不要就不用innerHTML,用createElement,然后add.
2 楼 enix2212 2011-02-04  
少了tbody元素吧
1 楼 yoyo837 2011-01-29  
IE下table的innerHTML是只读的,大佬

相关推荐

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

    其中一个经典的问题就是尝试使用JavaScript的innerHTML属性来修改表格(Table)或选择列表(Select)的内容,但在IE6、7、8、9版本中,这可能会遇到一些挑战。innerHTML属性通常用于设置或获取元素的HTML内容,但在...

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

    IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=utf-8/&gt; &lt;title&gt;IE6-IE9中tbody的innerHTML不能复制bug&lt;/title&gt; &lt;/...

    jquery appen table 问题 ie8下解决方法

    - IE8的DOM操作限制:IE8并不完全支持W3C标准,特别是关于动态创建和修改DOM元素的部分。这可能使`append()`在某些场景下表现不一致。 - 表格元素的插入规则:在HTML中,`&lt;tr&gt;`元素必须直接位于`&lt;tbody&gt;`内,而`...

    Javascript在IE和FireFox中的兼容处理

    - IE和Firefox在处理表格元素时可能有不同的行为,例如`innerHTML`赋值。需要针对特定情况处理。 14. **padding简写问题** - Firefox支持`padding: 10px;`,而老版本IE可能需要分别设置`padding-top`, `padding-...

    前段JS开发和DOM兼容问题大全

    9. 对于table标签的操作,IE浏览器不允许对其和tr元素的innerHTML属性赋值,且使用appendChild方法增加一个TR时也可能不起作用。在IE中,可以通过`insertRow`和`insertCell`方法动态添加行和单元格。 二、其他DOM...

    使用JS操作页面表格,元素的一些技巧

    ie 、firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChile方法也不管用。下面是我就三种浏览器测试的结果:  insertRow IE6...

    【JavaScript源代码】JavaScript动态生成带删除行功能的表格.docx

    - **创建单元格td**:在内部嵌套for循环,遍历对象的属性,根据属性创建td,赋值并添加到tr中。 - **创建删除链接**:在每个tr的末尾添加一个带有删除功能的a链接。这个链接的点击事件会触发删除行的逻辑。 4. **...

    IE与FireFox的JavaScript兼容问题解决办法

    在IE浏览器中,可以直接使用`table.deleteRow(k)`方法删除指定行号`k`所在的行。然而在FireFox中,使用`deleteRow`方法不会有任何效果,因为该方法在FireFox中并不支持。为了兼容FireFox,我们需要使用`removeNode...

    ajax局部刷新技术ajax局部刷新技术ajax局部刷新技术

    - **更新内容**:将服务器返回的数据赋值给DOM元素的`innerHTML`属性,实现局部刷新效果。 #### 四、示例分析 以下是从给定部分内容中提取的关键代码片段: ```javascript function jy() { url = "()%&gt;/ggfl1s....

    用javascript实现把表格内容导出到excel和把excel里面内容导入表格的方法归类.pdf

    这样,你就能实现跨浏览器的表格导入和导出功能,从而在不依赖服务器环境的情况下处理Excel数据。 总结起来,JavaScript提供了与Excel交互的能力,尽管它主要依赖于ActiveX对象(仅限于IE),但也有跨浏览器的解决...

    jQuery完全实例.rar

    在这个函数的内部,是通过临时创建一个元素,并将这个元素的 innerHTML 属性设置为给定的标记字符串,来实现标记到 DOM 元素转换的。所以,这个函数既有灵活性,也有局限性。 jQuery 代码: $("&lt;div&gt;&lt;p&gt;Hello&lt;/p&gt;...

    浏览器右下角弹出提示框代码实例

    接着,通过`oPopup.document.body`获取了这个新弹出窗口的文档体元素,并存储到变量`CW_Body`中,为后续填充内容做准备。 ##### 2. 设置样式 ```javascript var CSStext = "margin:1px;color:black;border:2px ...

    JsDom 编程小结

    - **不同浏览器对 DOM 操作的支持差异**:如 IE6 和 IE7 对 `table.appendChild("tr")` 的支持与 IE8 不同。为解决此问题,可以采用 `insertRow` 和 `insertCell` 方法或为表格添加 `&lt;tbody&gt;` 标签,然后向 `&lt;tbody&gt;...

    ASP.NET 调用百度搜索引擎的代码

    在***的后端代码中,我们通常会使用`StringBuilder`来构建这样的字符串,然后将其赋值给`HtmlTableCell`的`InnerHtml`属性,最后将这个`HtmlTableCell`添加到某个`Table`控件的`Cells`集合中。以下是一个简单的示例...

Global site tag (gtag.js) - Google Analytics