当前位置:  开发笔记 > 编程语言 > 正文

调试IE8 Javascript替换innerHTML运行时错误

如何解决《调试IE8Javascript替换innerHTML运行时错误》经验,为你挑选了3个好方法。

您无法将值设置为表的innerHTML,您应该访问子单元格或行并更改它们:

document.getElementById(tabid).rows[0].cells.innerHTML = 'blah blah';

有关更多信息/示例:Table,TableHeader,TableRow,TableData Objects



1> Canavar..:

您无法将值设置为表的innerHTML,您应该访问子单元格或行并更改它们:

document.getElementById(tabid).rows[0].cells.innerHTML = 'blah blah';

有关更多信息/示例:Table,TableHeader,TableRow,TableData Objects


实际上,在IE8中它是document.getElementById(tabid).rows [0] .cells [0] .innerHTML ='blah blah';

2> 小智..:

在IE8中,当尝试从对象内部触发的代码时,您无法更改对象的innerHTML.

例如:


  

将以下代码隐藏在文档的某个远程角落:


这将失败,错误未知运行时错误.我认为这与您尝试替换触发当前执行行的HTML代码有关.onclick事件是由DoSomething函数替换的代码的一部分.IE8不喜欢这样.

我通过设置250毫秒的计时器事件来解决我的问题,这样在250毫秒结束时调用的函数将替换span的innerHTML.



3> 小智..:

我发现在IE8中有些元素是readonly:COL,COLGROUP,FRAMESET,HEAD,HTML,STYLE,TABLE,TBODY,TFOOT,THEAD,TITLE,TR.

因此,如果您尝试为这些元素设置innerHTML,IE8会通过未知运行时错误通知alter.

更多细节:http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx.

最简单的方法是将只读元素转换为div元素.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有