innerHTML错误IE8

时间:2010-05-24 10:24:20

标签: javascript html css xhtml innerhtml

这个innerHTML代码在IE8中无法可靠地运行: (但在IE6 IE7 FF Opera Chrome Safari中工作) (由于不能可靠地工作,我的意思是我已将此代码放在onmouseover处理程序的各种元素上,有时它会在鼠标悬停在给定元素上时更改文本,有时它不会 - 没有模式 - 无论它是否可行或似乎并不是完全随机的)

document.getElementById("mydiv").innerHTML="some text";

DOM方法(删除并重新添加带有更新文本的div)也没有帮助。

所以我在上面的代码之后立即添加了它并修复了它:

document.styleSheets[0].addRule("#mydiv:after", "content: ' ';");

使用条件注释我确定了第二行代码仅适用于IE8

我很肯定这会节省很多时间,因为我浪费了很多年的时间! 即使Jquery.text()没有帮助!

我在其他地方读过,innerHTML会更新DOM,但无法更新屏幕元素。我相信CSS规则有效,因为它动态地改变了#mydiv的after伪类的内容,因此需要更新mydiv的内容,从而更新屏幕(innerHTML无法做到的事情)。

然而,如果有人有更好的解决方案,我很乐意听到 - 谢谢

按要求编辑

1 个答案:

答案 0 :(得分:-1)

您可以使用innerText代替innerHTML