2013-05-14 31 views
0

免责声明 - 我应该注意我的JavaScript非常弱。如何才能使beforeunload事件仅在浏览器会话退出时触发

我正在向我的网站插入代码,因此它可以涵盖用户退出浏览器时的场景,他得到一句谚语“你确定要退出吗?”的提示。一种确认消息。

我在试图实现在我的网站这一块的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命令不能被捕获。我只想在当前用户会话中可能会退出浏览器的场景。

我一直在查看各种网络示例,并通过代码引用,似乎无法确切地跟踪我想要做什么。这甚至有可能吗?

回答

2

我已经在页面拥有表单之前完成了这个工作,我只想在表单发生更改时要求用户确认。你可以做一些类似的事情,例如,将一个点击事件附加到所有链接上,将foo设置为false。喜欢的东西:

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

编辑:有你可能要考虑,这取决于你的网站很多其他的行动,但与所提供的信息,这应该是一个良好的开端,你因为没有直接的方法完成你以后的工作。

+0

如何提交表单,页面刷新等。 – epascarello 2013-05-14 18:32:54

+0

是的,这只适用于链接。我试图展示一个如何做到这一点的例子,而不是OP所要解决的所有可能行动的详尽清单。 – Duffmaster33 2013-05-14 18:37:14

+0

@ Duffmaster33是否有可用的操作列表? – 2013-05-14 19:02:44

相关问题