如果我链接到网站的其他部分,例如
<a href="foo.html" target="_blank">Link</a>
我希望能够在新窗口中告诉用户是通过该链接来的,还是通过不同的路径直接访问该网址。这可能吗?
这是因为,如果他们来自同一个网站,我可以使用window.close();
,但如果他们来自不同的路线则不会。
答案 0 :(得分:2)
在这种情况下,您可以使用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)
将返回上次访问过的网页的主机名。因此,您可以将其与当前应用程序的主机名匹配,如果它们匹配,则可以关闭窗口。