每当我添加一个事件监听器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
}
});
答案 0 :(得分:4)
您需要在网页中的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
}
});
但是,如果由于某些其他事件(例如用户在浏览器中输入新网址或使用脚本)而发生重定向,则由于安全原因,您无法检测目标。
类似: How can i get the destination url in javascript onbeforeunload event?