首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调试IE8 Javascript替换innerHTML运行时错误

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

Stack Overflow用户
提问于 2009-02-17 08:42:13
回答 9查看 42.6K关注 0票数 17
代码语言:javascript
复制
function DeleteData(ID)
{
 var ctrlId=ID.id;

 var divcontents=document.getElementById(ctrlId).innerHTML;
 var tabid=ctrlId.replace(/div/,'tab');
 var tabcontents=document.getElementById(tabid).innerHTML;
 alert(document.getElementById(tabid).innerHTML);
 document.getElementById(tabid).innerHTML="<TBody><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></TBody>";
 document.getElementById(ctrlId).innerHTML='';

}

我正在尝试用空表替换该表,但是

代码语言:javascript
复制
document.getElementById(tabid).innerHTML="<TBody><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></TBody>";

此行导致Unknown Runtime Error

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-02-17 09:02:05

您不能将值设置为表的innerHTML,您应该访问子单元格或行,并像这样更改它们:

代码语言:javascript
复制
document.getElementById(tabid).rows[0].cells.innerHTML = 'blah blah';

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

票数 15
EN

Stack Overflow用户

发布于 2010-11-03 11:43:00

在IE8中,当尝试的代码从对象内部激发时,不能更改该对象的innerHTML。

例如:

代码语言:javascript
复制
<span id='n1'>
  <input type=button value='test' onclick='DoSomething(this);'>
</span>

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

代码语言:javascript
复制
<script type='text/javascript'>
  function DoSomething(element)
  {
    document.getElementById("n1").innerHTML = "This is a test"
  }
</script>

此操作将失败,并显示未知运行时错误。我认为这与您试图替换触发当前执行行的HTML代码有关。onclick事件是被DoSomething函数替换的代码的一部分。IE8不喜欢这样。

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

票数 13
EN

Stack Overflow用户

发布于 2011-02-09 18:06:47

我发现在IE8中有些元素是只读的: COL,COLGROUP,FRAMESET,HEAD,HTML,STYLE,TABLE,TBODY,TFOOT,HEAD,TITLE,TR。

因此,如果您尝试为这些元素设置innerHTML,IE8会通知alter with Unknown Runtime Error。

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

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/555965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档