5

工作,我使用这些代码刷新我的网页的一部分:的innerHTML不IE11与IE8

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

但我的问题是,我不能改变我的代码EAS的另一部分ily由于动态生成。

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

2),并且还我需要一种替代:

window.history.pushState() 

不在IE8和IE9

+0

去猜测'mainForm:table_1'是一个'

'元素?如果是这样,请尝试选择表的父元素并替换整个表。 – 2014-09-22 08:15:08

+0

是的,你是对的,它是一张桌子。我试图做到这一点,我的问题的第二部分呢?我怎么能添加一个字符串与类似pushstate与ie8和ie9一起使用的url?感谢您的回答 – OmiD 2014-09-22 08:43:24

回答

2

你的问题的第一部分,这样做:

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

,并为你的问题的第二部分作为@JITHIN光伏说,你必须使用history.js

您可以轻松地使用它像这样:

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

IE9工作,并且下面不支持pushState的。对于unsupported browsers使用history API。并且还找到polyfills here的更多列表。

+0

是的,你是对的,它不工作,但没有任何方式与原生的JavaScript或jQuery的?使用历史记录API – OmiD 2014-09-22 08:48:08

+0

@OmD您可以停止支持过时/过时的浏览器。现在是时候我们停止对拒绝更新的人员 - 特别是因为这样做需要手动和故意(因此,对我们来说是恶意地)禁用Windows Update。 – 2014-09-22 08:54:07