2015-12-09 37 views
0
Page A 
Page B 
Page C 

如果用戶從page A未來做page C東西(在同一網站內) 如果用戶從page B來去做別的事情上page C(同一網站內)如何識別用戶登陸另一頁面的頁面?

什麼是最好的在JS中這樣做的方法? (不使用document.referrer

+0

您如何定義「最佳」? –

+0

「不要使用document.referrer」讓我覺得這是一項家庭作業......你有什麼嘗試? – jcaron

+0

注意:至少有5種不同的方式可以做到。你需要縮小它。 – jcaron

回答

0

你可以做的是有一個全局變量,將保存的位置。當你加載一個頁面。分配一個變量

window.location.href 

document.URL; 

另一種辦法是使用的cookies的位置。

+0

當從一個頁面切換到另一個頁面時,Javascript意義上(即存儲在'window'中)的「全局變量」將會丟失。 – jcaron

+0

它不存儲在窗口中,你從Windows獲得當前的URL。 javascript變量保持不變,因此可以從網站上的多個頁面訪問。 – miqdadamirali

+0

試試吧。你會看到它不是。只要我們談論一個常規的Javascript變量,當然不是Cookie,本地存儲,會話存儲等等。 – jcaron

0

你的描述對我來說沒有什麼意義,特別是因爲你沒有包含任何你正在使用的框架/堆棧(這個責任可能會落在上面)。

這就是說,我會在會話獲取器和設置器中使用一個變量。您可以解析查詢字符串或URL,將其設置爲等同於會話變量,然後在準備好使用該變量時獲取該會話變量。

這裏的how to use會議getter和setter方法在JavaScript

+0

讓我說我沒有使用任何框架...我正在尋找一個乾淨的JS解決方案。我想爲舊的瀏覽器做一個回退到cookies的sessionStorage,但是想確定這是否是最好的解決方案...... – user3195927

0

您可以page Apage B設置cookie,表示他們是哪個頁面。然後page C可以檢查cookie值。

1

在我看來,有兩個像樣的解決方案:

  1. 當一個頁面加載頁面C,包括基本上說:「從A頁面加載」的URL的變量。 (同樣適用於頁B.)

  2. 當頁面A被裝入,或者設置一個cookie,localStorage,或sessionStorage變量,說: 「從A頁加載」。 (同樣適用於頁面B.)然後,當加載頁面C時,檢查變量以查看頁面A或頁面B是否是最近打開的頁面。 (您可能還希望在cookie,localStorage或sessionStorage上設置超時/到期時間。)