2014-11-03 92 views
0

當我訪問JavaScript變量window.history.length時,我返回了我的窗口歷史記錄的大小。當我從一個頁面向另一個頁面向前導航時,window.history的長度增加。當我使用瀏覽器後退按鈕瀏覽歷史記錄時,即使我回顧歷史,window.history的值也不會減少。爲什麼是這樣?爲什麼我的window.history大小不會減少?

+1

如果您導航回幾頁,然後訪問與以前不同的頁面,它可能會減少。在StackOverflow上點擊幾下,然後檢查長度。回去幾頁並再次檢查長度,它應該是相同的。點擊不同的長度,它會更小。 – 2014-11-03 04:01:38

回答

3

window.history想象爲訪問的邏輯增長列表或頁面數組。最初,只有最初的頁面。當您向前導航時,新條目將添加到列表的末尾,並且window.history.length將增加1。當您返回頁面時,列表確實是而不是包含您之前被刪除的條目。相反,它仍然存在,然後你有機會前進(回到你剛剛回來的頁面)。

這意味着您不應該使用window.history的長度作爲您瀏覽會話開始時間的指標。例如,如果您的window.history.length的值爲5,那麼不是意味着如果您返回3頁,則將訪問您訪問的第2頁。 window.history.length代表您在正向訪問的頁面數的長度,但沒有說明您當前在該列表中的

如果在向後導航之後,您訪問的前向頁與前一個鏈中的前一個頁面不同,則該列表將被更改,因此您現在不再能夠轉發的長度訪問條目你以前回來的。

+0

那麼你將如何去檢查你是否在堆棧的第一頁? – 2017-11-24 23:59:51

相關問題