2017-01-10 31 views
0

如果用戶被重定向到他們自己的多個其他URL,我試圖在公司的網站上顯示一個彈出窗口。重定向已通過我們的託管服務單獨執行。如果我在瀏覽器中輸入網址,重定向顯然是有效的。document.referrer引用我的函數範圍之外的URL

我不知所措,當我越來越從我的公式非常意外的結果:

var redirectOverlayAppear = function() { 

if (document.referrer == "www.abc.com" || "www.xyz.com") { 

    redirectTint.style.visibility = "visible"; 

} 

}(); 

這會產生彈出我的,而不是僅僅從功能指定的URL,但是,當我瀏覽從我們指定的其他網址,如果我只是在瀏覽器中鍵入新網址,或者即使我導航到谷歌,然後鍵入新的網址。

如果我只隔離一個網址,即 -

if (document.referrer == "www.abc.com") { 

    redirectTint.style.visibility = "visible"; 

} ... 

什麼也沒有發生。

除了其他的事情之外,我轉向瞭解問題是否來自主機的重定向沒有註冊,因爲它不是點擊事件。

除了document.referrer(我一直在尋找一段時間,並且無處可去)之外,還有別的方法可以引用以前的URL嗎?

任何反饋將不勝感激!

+1

document.referrer是一個完整有效的URL ......不只是一臺主機...所以通過'http:// example.com /一些/路徑/例如 –

+0

'document.referrer = page.html' =「www.abc.com」|| 「www.xyz.com」不是你認爲的......它不檢查引用者是否是其中一個......它檢查是否存在「document.referrer ==」www.abc.com「 '這是錯誤的,所以它然後檢查'www.xyz.com''是否是「truthy」......它是一個非空字符串是真的...這就是爲什麼你的條件總是** **是真的 –

回答

1

你不能這樣做,它不檢查或者。

如果在說如果document.referrer == "www.abc.com"爲真或者"www.xyz.com"爲真。由於"www.xyz.com"總是真的,它會一直進入if。

if (document.referrer == "www.abc.com" || document.referrer == "www.xyz.com")