2012-02-14 64 views
3

點擊一個按鈕,我需要確保窗口控件更改爲新的新元素(選項卡)。因此,我使用的是這樣的,以html:window.location.reload();在IE8中失去視圖狀態

<input id="back" type="button" value="Back to Form" onclick="backTo();"> 

和相應的JS代碼是: -

function backTo(){ 
    window.location.href='#fragment-1'; 
    window.location.reload(); 
} 

論在Firefox以上執行時,控制將會返回到元件(片段1 ),其中字段具有預先輸入的文本數據。雖然IE8控件中的相同內容返回到fragment-1元素,但所有輸入的prev文本數據都會丟失。

此外,我已經添加了緩存控制參數設置爲public,並試圖查看這是否有助於視圖狀態從緩存加載,無論何時控制回到給定的div /元素。

遺漏了什麼?

回答

0

好吧..這取決於一個特定的瀏覽器如何保存頁面的狀態..
也嘗試使用history.go()方法http://www.w3schools.com/jsref/met_his_go.asp並查看問題是否解決。

+0

我試過history.go(),這也是導航到新的元素,但仍然viewstate(文本內的文本)缺失。 – 2012-02-14 11:02:21

0

怎麼樣重新提交形式,而不是重裝:

document.forms[0].submit();//assumed there is only one form in you page 

UPDATE:這應該這樣做: 假設該div下面是你想轉讓的控制,使用scrollIntoView功能的元件:

<div id="fragment-1" name="fragment-1"> 
.... 
</div> 

document.getElementById('fragment-1').scrollIntoView(); 
+0

我不想發佈到服務器,但希望控件轉到文檔中的另一個元素。由於這是選項卡式應用程序,在clikcing bakc按鈕上,我想導航到prev選項卡,而不會更改狀態。 – 2012-02-14 11:03:12

+0

請看我更新的答案,我得到你想要的:) – jerjer 2012-02-14 11:08:41

+0

恐怕因爲這不是在Mozilla和IE8中都有效。 – 2012-02-14 11:25:06