javascript - 调用window.onbeforeunload时,我能知道页面被重定向到哪里了吗?

标签 javascript jquery jquery-events

每当我添加一个事件监听器 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/

相关文章:

javascript - 如何仅删除实例中添加的事件处理程序?

javascript - 交互式运行 Javascript 的好方法是什么?

javascript - 如何在页面加载时显示运行进度条

javascript - 将数据移出我的 jQuery AJAX 调用范围

jquery - Twitter 需要 Bootstrap 轮播优化解决方案

javascript - CKEditor:如何销毁模糊实例?

javascript - RequireJS模块检测

javascript - 水平对齐固定 DIV

javascript - 如何使 videojs 标记可滑动或可移动

javascript - 想了解 JavaScript 的基础层(不是基础)架构