2015-09-22 18 views
0

我有一系列的HTML頁面,包括一個信息頁面的鏈接。在該頁面的菜單,我要引用頁的鏈接後面,使用此代碼:奇怪的行爲與document.referrer和多個URL的

<a class="nav_link" onclick="location.href = document.referrer;" onmouseover="this.style.cursor='pointer'">Return to Text</a> 

它可以在第一次使用符合市場預期,但如果有人移動到另一個頁面,然後在鏈接上點擊要返回,它有時會將它們帶到舊的引用頁面。因此,例如,如果有人從第1頁到我的引薦頁面,通過此錨點標記生成的鏈接返回,然後轉到第3頁並單擊鏈接到信息頁面,單擊「返回到文本」如預期的那樣,他們可能第二次回到第1頁而不是第3頁。

我假設問題是document.referrer被存儲在內存中,並且當用戶點擊鏈接再次進入信息頁面時沒有被覆蓋。爲什麼會這樣,並且有沒有辦法讓我確保在點擊鏈接返回時創建內存總是被清除,或者創建一個更健壯版的location.href = document.referrer; onclick?

+1

瀏覽器在分配給'location.href'時是否更新'document.referer',而不是正常地鏈接鏈接時的行爲不同。 – Barmar

回答

1

如果你想要一個「反向鏈接」,你就要去與history.go(-1)更好:

onclick="history.go(-1);" 

這實際上模擬後退按鈕,而不是添加進入到歷史與重演之前的網址。