1
如果我建立了到該網站另一部分的鏈接,例如檢測是否從同一網站打開一個窗口
<a href="foo.html" target="_blank">Link</a>
我希望能夠在新的窗口告訴用戶是否通過該鏈接過來,或者如果他們通過不同的途徑直接到該網址。那可能嗎?
這是因爲,如果它們來自同一個網站,我可以使用window.close();
,但如果它們是通過不同的路線來傳遞的,則不會。
如果我建立了到該網站另一部分的鏈接,例如檢測是否從同一網站打開一個窗口
<a href="foo.html" target="_blank">Link</a>
我希望能夠在新的窗口告訴用戶是否通過該鏈接過來,或者如果他們通過不同的途徑直接到該網址。那可能嗎?
這是因爲,如果它們來自同一個網站,我可以使用window.close();
,但如果它們是通過不同的路線來傳遞的,則不會。
在這種情況下,你可以使用document.referrer
:
if(document.referrer){
// close the window here
console.log('loaded via navigation')
}else{
console.log('no navigation');
}
,或者你可能想從指引送域名:
function virtualURL(url) {
var a=document.createElement('a');
a.href=url;
return a.hostname;
}
if(virtualURL(document.referrer) === window.location.hostname){
// close the window here
console.log('loaded via navigation')
}else{
console.log('nope');
}
在這裏,在上面的代碼virtualURL(document.referrer)
將返回的主機名上次訪問的頁面。因此,您可以將它與當前應用程序的主機名匹配,如果它們匹配,則可以關閉該窗口。
完美!我正在尋找各種替代解決方案,例如將變量從父項傳遞給它的子項。謝謝:) –
這可能是另一種解決方案。並歡迎您。 – Jai