我使用这些代码刷新页面的一部分:
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 Explorer 和 document.getElementById().innerHTML fails with 'Unknown Error' in IE
但我的问题是,由于动态生成,我无法轻易更改代码的其他部分。
1)有没有什么方法可以用我的代码的这些部分来解决IE问题?
2)我还需要一个替代方案:
window.history.pushState()
在IE8和IE9中不起作用
答案 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的末尾添加了毫秒,使其变为: