2013-10-18 43 views
9

我有以下代碼:從外部網址導航時Document.referrer爲空?

var previousPageUrl= document.referrer; 
alert(previousPageUrl);` 

如果前面的網址爲任何外部網站的這將無法正常工作,即,不是我的申請。

例如:

如果我在第1頁,前往第2頁我的應用程序的話,我會得到第1個URL中引用的第2負載,但是當我去到外部網站說www.google。然後再回到第1頁時,我不會將www.google.com作爲引薦網址。

有人可以告訴解決這個問題。

回答

24

通常,由於鏈接點擊或基於JavaScript的導航導航發生時,引薦網址在不相關網站之間傳遞。如果用戶使用瀏覽器的瀏覽器(例如地址欄,後退/前進按鈕/等)進行瀏覽,則不會發送Referer網址。

出於安全/隱私的原因,從HTTPS站點導航到HTTP站點時(例如,從https://google.comhttp://example.com),Referer URL被剝離。它也可以通過各種JavaScript和HTML技巧被故意刪除。如果已經剝離了Referer URL,則無法禁用此行爲來獲取Referer URL。

+0

那麼在那種情況下,當我通過按下瀏覽器的後退按鈕從外部網站進入我的應用程序時,我將如何將用戶發送到主頁而不知道我是否來自外部網站。 – Vijay

+0

按下返回按鈕將永遠不會發送Referer,因爲您來自的網站並未以任何方式「引用」用戶。 – EricLaw

+0

然後,當我們按下應用程序中的瀏覽器後退按鈕時,document.referrer如何獲取前一頁的url? – Vijay