这个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 未能做到)。

但是,如果有人有更好的解决方案,我很想听听 - 谢谢

按要求编辑

最佳答案

您可以使用 innerText 代替 innerHTML

关于javascript - 内部 HTML 错误 IE8,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2896208/

10-12 07:37
查看更多