2010-09-02 50 views
14

我有一個網頁,使用$(document).ready()來構建接口。然後用戶可以進入子頁面,並返回到原始頁面,他可以按下瀏覽器的「上一個」按鈕或觸發history.back();頁面中的「返回」按鈕。回到原始頁面,$(document).ready()未被觸發,因此頁面缺少信息。

有沒有辦法自動觸發它,就像它是一個「真正的負載」?

謝謝!

編輯

放置在它的警報,該警報POP操作,但東西是在我的界面一樣,如果準備事件的某些部分缺失丟失。調查...

編輯2

haha​​hahaha中的document.ready我click一些複選框,這應該是選中。當我「返回」在這個頁面上時,他們被檢查,所以他們變得沒有選中,因爲我是click他們。

對不起,這完全是我的壞:(

+0

你在什麼瀏覽器中看到了這個?我只記得Opera後退/前進按鈕有這個問題。 – 2010-09-02 15:27:24

+0

我在Chrome上。報告問題的用戶在Firefox上。 – Sirber 2010-09-02 16:03:23

+0

請關閉 – Sirber 2010-09-07 18:51:32

回答

7

如果用戶使用的Back按鈕導航和您所需要的頁面全部重新加載,你可以設置頁面的NO-CACHE政策。

這樣,即使使用Back按鈕,瀏覽器也被迫重新加載服務器頁面。

+0

Hrmm..nice答案。沒有想到這一點。 – Dutchie432 2010-09-02 15:21:39

+0

我已經使用:header(「Cache-Control:private,no-cache,must-revalidate」);標題(「Pragma:no-cache」); – Sirber 2010-09-02 15:36:57

+0

我添加了'',但是當我按下「返回」時它不會重新加載頁面。 – Sirber 2010-09-02 15:40:34

1

非常有趣的問題。當頁面獲得焦點或類似的東西時,您可能需要重新觸發事件/函數。也可能需要保留一個標誌變量來跟蹤這個「重新觸發事件」是有序的。

4

1.)將腳本放在頁面的底部。
2.)執行插件和你最後的腳本標籤中的東西。
3.)不要使用onDomReady實現,它是多餘的。

人們習慣於上傳或修改,他們忽略了將腳本放在頁面底部而不需要輪詢並查看您的html是否可用的事實。

此外,這也是一種很好的做法,因爲腳本不會阻止html/css呈現。

不依賴於onDomReady或onLoad實現解決了很多問題。

+1

-1,對於「onload」不起作用的瀏覽器,您的解決方案不起作用。例如。 FireFox,它不會運行腳本,無論你是將它放在onload還是在頁面底部。你甚至測試過嗎? – Pacerier 2014-10-12 07:31:34

8

快速解決此問題,請使用「onpageshow」。

window.onpageshow = function(event) { 
    //do something 
}; 
+0

謝謝!其他提議的解決方案在Firefox和Chrome上都無法正常工作,但是這種解決方案可以。 – 2017-05-05 08:30:26

相關問題