繁体   English   中英

innerHTML 在 IE11 和 IE8 中不起作用

[英]innerHTML doesn't work in IE11 and IE8

我使用这些代码来刷新我的页面的一部分:

var container = document.getElementById("mainForm:table_1");
var content = container.innerHTML;
container.innerHTML= content;

container.innerHTML 在 Firefox 和 chrome 中运行良好,但在 IE8 和 IE11 中不起作用

我已经阅读了这些链接: .InnerHTML 在 Internet Explorer 中无法正常工作,并且document.getElementById().innerHTML 在 IE 中失败并出现“未知错误”

但我的问题是由于动态生成,我无法轻松更改代码的另一部分。

1) 有什么办法可以只用我的代码的这些部分来解决 IE 问题吗?

2)而且我还需要一个替代方案:

window.history.pushState()

这在 IE8 和 IE9 中不起作用

IE9及以下版本不支持pushState。 对于不受支持的浏览器,请使用历史API 在此处找到更多的填充物列表。

对于问题的第一部分,请执行以下操作:

  var container = document.getElementById("mainForm:table_1").parentNode;
  var content = container.innerHTML
  container.innerHTML= content;

对于你的问题的第二部分,@ JITHIN PV说你必须使用history.js

你可以像这样轻松使用它:

var History = window.History;
History.enabled ;
History.pushState("object or string", "object or string", "object or string");

如果设置为innerHTML的新内容与其实际内容相同,则IE 11似乎不刷新元素。
我的问题是在<img src ='some_url'...>中,'some_url'字符串即使其内容已更改也是相同的。
为了解决这个问题,我在some_url的末尾添加了毫秒数,因此它变为:<img src ='some_url&time ='+ new Date()。getTime()...>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM