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元素也存在相同的情况。
分享到:
相关推荐
其中一个经典的问题就是尝试使用JavaScript的innerHTML属性来修改表格(Table)或选择列表(Select)的内容,但在IE6、7、8、9版本中,这可能会遇到一些挑战。innerHTML属性通常用于设置或获取元素的HTML内容,但在...
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 <!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </...
- IE8的DOM操作限制:IE8并不完全支持W3C标准,特别是关于动态创建和修改DOM元素的部分。这可能使`append()`在某些场景下表现不一致。 - 表格元素的插入规则:在HTML中,`<tr>`元素必须直接位于`<tbody>`内,而`...
- IE和Firefox在处理表格元素时可能有不同的行为,例如`innerHTML`赋值。需要针对特定情况处理。 14. **padding简写问题** - Firefox支持`padding: 10px;`,而老版本IE可能需要分别设置`padding-top`, `padding-...
9. 对于table标签的操作,IE浏览器不允许对其和tr元素的innerHTML属性赋值,且使用appendChild方法增加一个TR时也可能不起作用。在IE中,可以通过`insertRow`和`insertCell`方法动态添加行和单元格。 二、其他DOM...
ie 、firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChile方法也不管用。下面是我就三种浏览器测试的结果: insertRow IE6...
- **创建单元格td**:在内部嵌套for循环,遍历对象的属性,根据属性创建td,赋值并添加到tr中。 - **创建删除链接**:在每个tr的末尾添加一个带有删除功能的a链接。这个链接的点击事件会触发删除行的逻辑。 4. **...
在IE浏览器中,可以直接使用`table.deleteRow(k)`方法删除指定行号`k`所在的行。然而在FireFox中,使用`deleteRow`方法不会有任何效果,因为该方法在FireFox中并不支持。为了兼容FireFox,我们需要使用`removeNode...
- **更新内容**:将服务器返回的数据赋值给DOM元素的`innerHTML`属性,实现局部刷新效果。 #### 四、示例分析 以下是从给定部分内容中提取的关键代码片段: ```javascript function jy() { url = "()%>/ggfl1s....
这样,你就能实现跨浏览器的表格导入和导出功能,从而在不依赖服务器环境的情况下处理Excel数据。 总结起来,JavaScript提供了与Excel交互的能力,尽管它主要依赖于ActiveX对象(仅限于IE),但也有跨浏览器的解决...
在这个函数的内部,是通过临时创建一个元素,并将这个元素的 innerHTML 属性设置为给定的标记字符串,来实现标记到 DOM 元素转换的。所以,这个函数既有灵活性,也有局限性。 jQuery 代码: $("<div><p>Hello</p>...
接着,通过`oPopup.document.body`获取了这个新弹出窗口的文档体元素,并存储到变量`CW_Body`中,为后续填充内容做准备。 ##### 2. 设置样式 ```javascript var CSStext = "margin:1px;color:black;border:2px ...
- **不同浏览器对 DOM 操作的支持差异**:如 IE6 和 IE7 对 `table.appendChild("tr")` 的支持与 IE8 不同。为解决此问题,可以采用 `insertRow` 和 `insertCell` 方法或为表格添加 `<tbody>` 标签,然后向 `<tbody>...
在***的后端代码中,我们通常会使用`StringBuilder`来构建这样的字符串,然后将其赋值给`HtmlTableCell`的`InnerHtml`属性,最后将这个`HtmlTableCell`添加到某个`Table`控件的`Cells`集合中。以下是一个简单的示例...