为啥 IE 会在这一行抛出错误?
Posted
技术标签:
【中文标题】为啥 IE 会在这一行抛出错误?【英文标题】:Why does IE throw an error on this line?为什么 IE 会在这一行抛出错误? 【发布时间】:2014-06-25 04:04:10 【问题描述】:以下代码在 Firefox 中运行良好,但 IE 报错:
第 41 行,字符:3 出现异常运行时错误。
为什么 IE 不能处理这段代码?我需要做什么来修复它?
<script>
function addComparison()
var tableTR = document.getElementById('comparisons');
if(tableTR!=null)
var td2Add = "<td id='comp_2' valign='top' align='left' style='border-right: 1px solid black'>ADDED</td>";
alert(td2Add);
tableTR.innerhtml += td2Add; //LINE 41, the line IE8 errors on!
</script>
点击此链接调用该函数:
<a href='javascript:addComparison();'>Add Comparison</a>
它试图更新的元素:
<table>
<tr id='comparisons' valign='top' align='left'></tr>
</table>
【问题讨论】:
【参考方案1】:'tr' 元素上的'innerHTML' 在 IE 中是只读的
该属性对于除以下对象之外的所有对象都是读/写的,例如 它是只读的:COL、COLGROUP、FRAMESET、HEAD、HTML、STYLE、 表、TBODY、TFOOT、THEAD、TITLE、TR。
来源:http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx
但是,您可以使用 innerHTML 创建一个全新的表格(可能不是您想要做的)或使用 document.createElement
和 appendChild
/replaceChild
等来获得您想要的结果。
希望这会有所帮助!
【讨论】:
我想我必须使用 document.createElement 不管怎样,这一直是 IE 中的一个问题。你可以玩弄documentFragment
,但是……这不值得。仍然需要大量重绘等。以上是关于为啥 IE 会在这一行抛出错误?的主要内容,如果未能解决你的问题,请参考以下文章
Javascript中..为啥IE执行addEventListener()会出错??
为啥 requests-mock 装饰器模式会在 pytest 中抛出“fixture 'm' not found”错误?
为啥 PasteSpecial 方法有时会抛出错误 1004?