繁体   English   中英

如何在退出浏览器会话时触发beforeunload事件

[英]How can I make the beforeunload event fire only when a browser session is exited

免责声明 - 我应该注意我的JavaScript非常弱。

我正在将代码插入到我的网站中,因此它可以涵盖用户退出浏览器时的情况,他会收到一句谚语“你确定要退出吗?” 一种确认消息。

我正在尝试在我的网站上实现这段JavaScript:

   <script language="JavaScript" type0"text/javascript">

var foo = true;

window.onbeforeunload = askBeforeExiting;

function askBeforeExiting() {
  if (foo)
    return "Are you sure you want to leave this page?";
}
</script>

代码不仅在尝试退出浏览器时抛出确认消息。 但是,如果单击指向该站点其他部分的链接以及其他相关事件,它也会抛出确认。

有没有办法修改此代码只捕获浏览器关闭方案? 我得到的方案就像从任务管理器中删除浏览器或者无法捕获powershell命令。 我只想在当前用户会话中可能退出浏览器的场景。

我一直在通过网络和代码参考查看各种样本,似乎无法准确追踪我想要做的事情。 这甚至可能吗?

我已经在页面有表单之前完成了这个,我只想在对表单进行更改时要求用户确认。 您可以执行类似的操作,例如,将click事件附加到所有链接,将foo设置为false。 就像是:

var links = document.getElementsByTagName('a');
for(var i = 0, l = links.length; i < l; i++) {
    links[i].onclick = function () {
        foo = false;
    }
}

编辑:您可能需要考虑许多其他操作,具体取决于您的网站,但是根据所提供的信息,这应该是一个良好的开端,因为没有直接的方法来完成您的目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM