Javascript 如果用户确认关闭当前窗口,则在当前窗口关闭时打开新的浏览器窗口

Javascript 如果用户确认关闭当前窗口,则在当前窗口关闭时打开新的浏览器窗口,javascript,jquery,Javascript,Jquery,我有一个场景,如果用户试图关闭当前浏览器窗口,那么他应该显示一个确认框。如果他确认关闭该窗口,则该窗口应关闭并打开具有不同url的新窗口 我尝试使用以下代码来显示确认框,但是如果用户确认关闭当前窗口,我无法确定如何打开新窗口 var preventUnloadPrompt; $('a').live('click', function () { preventUnloadPrompt = true; }); $('form').live('submit', function

我有一个场景,如果用户试图关闭当前浏览器窗口,那么他应该显示一个确认框。如果他确认关闭该窗口,则该窗口应关闭并打开具有不同url的新窗口

我尝试使用以下代码来显示确认框,但是如果用户确认关闭当前窗口,我无法确定如何打开新窗口

var preventUnloadPrompt;            
$('a').live('click', function () { preventUnloadPrompt = true; });
$('form').live('submit', function () { preventUnloadPrompt = true; });
$(window).bind("beforeunload", function () {
    if (preventUnloadPrompt)
    { return; }
    else {
        return confirm("quit??");            
    }
});
任何形式的帮助都是非常感谢的。
谢谢。

当一个窗口关闭时,所有与该窗口相关的东西,无论是否可见。。。悬而未决的JavaScript代码、屏幕上的东西等都消失了,其中包括在执行过程中的脚本——PoFo NADA,基本上取消、中止、停止、停止任何正在运行的脚本。 时间顺序要求,除关闭窗口外,所有其他用户启动的操作都必须首先完成

例如:

javascript:
void(window.open("data:text/html,
<html>
<a href=\"javascript:window.open('about:blank');self.close();void(0);\">open & close</a> this link does both<br/>
<a href=\"javascript:self.close();window.open('about:blank');void(0);\">close & open</a> this does close but open fails
</html>
"))
书签:

理论上,应该可以使用
窗口。打开
,但这不是一个好主意,因为大多数浏览器可能会阻止调用
窗口。在
卸载
事件中打开
。你为什么要这么做?当然,如果用户试图关闭标签,那么他们想离开网站,而不是打开一个新的标签…?事实上,有一组问题被一个接一个地问给用户。如果用户关闭此窗口,我希望在某个不同的页面上执行代码,该页面将标记此用户已尝试了一组问题,从而阻止他再次尝试该问题。通常情况下,当用户尝试完所有问题后,就会出现这种情况。现在我知道是谁在为那些无法关闭的恼人网站编写代码了!这是我的电脑,这是我的浏览器,该死的,我应该随时自由关闭它,只要我高兴@NishantSaini:我要做的是对userid和questionid使用一个标志,在页面加载时设置为1。在页面加载时,检查此标志是否设置为1,以确定是否显示问题。还可能需要针对与表单数据一起提交的userid/questionid设置一个随机数,因此当他们提交时,它被检测为问题的第一个视图,因此是有效的。这有帮助吗?使用@ClarkeyBoy提出的解决方案,这是一种专业的方法。浏览器属于用户,由用户控制。服务器是开发者的统治。您的业务约束不应该依赖于客户端,它是不可靠的。“答案”应该是您推荐的工作解决方案。对于其他的事情,有一个“评论”部分,你可以问更多的问题或尝试一些事情。不,没有。无论如何,谢谢你的回复。我认为在卸载之前确认不起作用。我注意到的是返回确认(“退出”);这是不对的。它不是导致确认框的那个。如果我写返回“退出”,确认框显示退出??在第一行,然后它有字符串说,你确定要离开这个页面吗?两个按钮停留在该页面上并离开该页面。在chrome的“beforeunload”事件中,confirm()被阻止。Firefox将显示它,但忽略返回和事件。preventDefault()。换句话说,如果用户想要关闭窗口,就不可能不关闭它。
javascript:
void(window.open("data:text/html,
<html>
<a href=\"javascript:window.open('about:blank');self.close();void(0);\">open & close</a> this link does both<br/>
<a href=\"javascript:self.close();window.open('about:blank');void(0);\">close & open</a> this does close but open fails
</html>
"))
window.navigator.userAgent =
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0