今天早上回到公司,发现写程序在谷歌浏览器显示正常,在IE下显示错误,查其原因,发现IE6到IE9不支持,table.innerHTML方法,于是在网上搜到一个方法,来解决这个问题
/**
* IE6-IE9不支持table.innerHTML
* @param table
* @param html
* @return
*/
function setTableInnerHTML(table, html) {
if(navigator && navigator.userAgent.match(/msie/i)){
var temp = table.ownerDocument.createElement('div');
temp.innerHTML = '<table><tbody>' + html + '</tbody></table>';
if(table.tBodies.length == 0){
var tbody=document.createElement("tbody");
table.appendChild(tbody);
}
table.replaceChild(temp.firstChild.firstChild, table.tBodies[0]);
} else {
table.innerHTML=html;
}
}
分享到:
相关推荐
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 <!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </...
其中一个常见的问题是这些版本的IE不支持`table.innerHTML`属性,这在试图动态更新表格内容时会造成困扰。`innerHTML`属性允许开发者设置或获取HTML元素内部的HTML内容,但在特定的元素,如`table`、`col`、`...
Set table = HTMLDoc.getElementsByTagName("table")(0) For Each row In table.rows For Each cell In row.cells Debug.Print cell.innerText '打印单元格内容 Next cell Next row ``` 压缩包中的"rrr.html"...
首先时飘忽不定的collapse的border,ie6偏偏...排查了半天,结果是IE的table元素为只读,不能使用innerHTML!!!! 同样为只读的元素还有COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, T
例如,`textContent`在IE中可能是`innerText`,`getElementsByTagName`在IE9及以下版本可能不支持命名空间。 6. **异步请求** 为了用户体验,通常我们会使用异步请求XML文件。这时,解析和添加数据的操作需要放在`...
本文主要探讨了两个在这些版本中常见的问题:JSON支持和使用`innerHTML`属性更新`table`元素时遇到的挑战,以及相应的解决方案。 首先,关于JSON的问题。在jQuery中使用JSON功能时,IE6-IE9在兼容模式下可能会报...
或者,对于不支持`download`属性的浏览器,可以使用`window.open`创建新窗口,并将CSV内容写入。 通过以上步骤,我们就可以实现在没有后端接口的情况下,使用原生JavaScript将HTML表格数据导出为Excel文件。提供的`...
在IE中,`innerHTML`属性不能用于动态地设置`<table>`的内容。但可以用于`<div>`或`<span>`等元素。 **解决方法:** 如果需要动态更新表格内容,建议使用上述创建元素的方法,而不是直接修改`innerHTML`。例如,...
- 对于不支持的方法或属性,提供兼容性代码或者使用库如 jQuery 来简化操作。 ### 4. 示例代码分析 #### 4.1 HTML 结构 - **表单结构**: - 包含一个表格,表格中有用于输入数据的单元格以及用于触发增加和删除...
innerHTML属性通常用于设置或获取元素的HTML内容,但在某些特定元素上,IE浏览器并不支持直接赋值操作。 在IE6、7、8、9中,以下元素的innerHTML属性是只读的:COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE,...
值得注意的是,如果`<table>`元素没有`<tbody>`子元素,直接在IE6中对`table`使用`appendChild`方法是无效的,因为IE6不支持对`table`元素直接进行`appendChild`操作(IE8及以上版本已修复此问题)。在这种情况下,...
首先,问题的出现是这样的:在使用innerHTML向table或者tr元素动态插入内容时,如果在IE9及以下版本,会遇到“Invalid target element for this operation”(无效的目标元素用于此操作)的错误。例如,尝试通过以下...
document.getElementById("id").InnerHTML = "填充代码"; 替换成 $("#id").html("填充代码"); <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>layui</title> ...
- IE8的DOM操作限制:IE8并不完全支持W3C标准,特别是关于动态创建和修改DOM元素的部分。这可能使`append()`在某些场景下表现不一致。 - 表格元素的插入规则:在HTML中,`<tr>`元素必须直接位于`<tbody>`内,而`...