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