如何使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命令杀死浏览器不能被捕获。我只想要当前用户会话中可能退出浏览器的场景。
我一直在网上看各种各样的例子,通过代码参考,似乎不能准确地追踪我想做什么。这可能吗?
我以前在一个页面有一个表单的地方这样做过,并且我只想在对表单进行更改时请求用户确认。您也可以做类似的事情,将单击事件附加到所有链接,例如,将foo设置为false。比如:
var links = document.getElementsByTagName('a');
for(var i = 0, l = links.length; i < l; i++) {
links[i].onclick = function () {
foo = false;
}
}
编辑:根据你的网站,你可能需要考虑许多其他的行动,但是根据给出的信息,这应该是一个好的开始,因为没有直接的方法来完成你所追求的。
相关文章:
- 弹出窗口出现,然后退出
- 退出全屏不起作用
- 基于两个条件退出While循环
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 验证会话中是否存在对象's数组
- 如何准确执行加载脚本&退出弹出窗口
- 通过javascript从会话中提取用户名
- firefox插件:退出不工作的应用程序观察器
- 将会话变量从一个页面传递到另一个页面
- 如何保持会话的活力
- Codeigniter会话概念简要说明
- Php未获取会话的最新值
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- 如何检测用户是否在同一会话中打开了多个窗口或选项卡
- 无法执行文件.退出Acrobat PDF中的操作
- PHP会话页面刷新不起作用
- 如何从Node Webkit应用程序中退出外部CMD文件
- 有可能通过sessionID获得快速会话吗
- 如何使beforeunload事件仅在浏览器会话退出时触发?
- Chrome 在关闭/退出时未清除会话 COOKIE