innerHTML在IE11和IE8中不起作用

时间:2014-09-22 08:10:26

标签: html internet-explorer internet-explorer-8 innerhtml internet-explorer-11

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

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

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

我已阅读这些链接: .InnerHTML Not working properly in Internet Explorerdocument.getElementById().innerHTML fails with 'Unknown Error' in IE

但我的问题是,由于动态生成,我无法轻易更改代码的其他部分。

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

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

window.history.pushState()

在IE8和IE9中不起作用

3 个答案:

答案 0 :(得分:6)

IE9及以下版本不支持pushState。对于unsupported browsers使用history API。还可以找到更多polyfills here的列表。

答案 1 :(得分:2)

问题的第一部分是这样做的:

  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");

答案 2 :(得分:-1)

如果设置为其innerHTML的新内容与其实际内容相同,则IE 11似乎不会刷新元素。
我的问题是即使在中,'some_url'字符串也是相同的。
为了解决这个问题,我在some_url的末尾添加了毫秒,使其变为: