每当我添加一个事件监听器 window.onbeforeunload
时,我可以检查页面被重定向到哪里吗?
或者至少是开发人员试图更改的内容。
下面是我真正想要的东西:
这就是我现在所做的:
$(window).bind("beforeunload",function(){
//I do what I want here
});
现在的问题是,当调用 document.location.href = "mailTo:*"
时,我想更改逻辑。即当 doccument.location.href
被调用时我不想做任何事情,所以我希望我的逻辑像这样:
$(window).bind("beforeunload",function(){
if(document.location.href has mailTo:)
{
//do nothing
}
else
{
//my old logic applies here
}
});
最佳答案
您需要为网页中的 Href 链接添加一个事件处理程序, 在 onclick = 他们的 href 上设置一个变量,您可以在 onbeforeunload 脚本中读取该变量。示例代码如下:
var storeHref = null;
$("a").bind("click", function(){
storeHref = this.href;
return true;
});
$(window).bind("beforeunload",function(){
if(storeHref has mailTo:)
{
//do nothing
}
else
{
//my old logic applies here
}
});
但是,如果重定向是由于某些其他事件而发生的,例如用户在浏览器中输入新 url 或使用脚本,则出于安全原因,您无法检测到目的地。
类似的: How can i get the destination url in javascript onbeforeunload event?
关于javascript - 调用window.onbeforeunload时,我能知道页面被重定向到哪里了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5308441/