Jquery退出弹出菜单混乱



我有以下代码

<script type="text/javascript">
function PopIt() { return 'Are you sure you want to leave?'; }
function UnPopIt() { /* nothing to return */ }
$(document).ready(function() {
window.onbeforeunload = PopIt;
$('a').click(function(){ window.onbeforeunload = UnPopIt; });
});
</script>

这个脚本有效。但是我该如何改变它,使它像这样工作;

1) 用户按下退出选项卡/页面

2) 页面更改为我选择的

3) 退出弹出显示是或否离开

4) 是=关闭页面,否=停留在当前页面

我想在弹出窗口显示之前更改页面

谢谢。

注意:我确实可以控制页面,我希望重定向到同一文件夹中的另一个.php。

试着像这样同时使用onbeforeunload和onunload。。。

function PopIt() { 
return 'Are you sure you want to leave?';
}
function UnloadIt() {
window.opener.nowDoThisOpener("pass this variable along too");
}
$(document).ready(function() {
//set the function defining what should be done BEFORE unloading
window.onbeforeunload = PopIt;
//set the function defining what should be done ON unloading
window.onunload = UnloadIt;
//set all links to disable both of these on click
$('a').click(function(){ 
window.onbeforeunload = null;
window.onunload=null;
});
});

请注意,现在DoThisOpener是一个可以在父页面上定义的函数(显然可以调用任何您想要的函数)。而且,正如我所建议的,你也可以传递信息。

此外,在您的示例中,您设置了一个空函数UnPopIt来取消onbeforeunload。这是不必要的,您可以将onbeforeunload和onunload设置为null,就像我在示例中所做的那样。

以前的回答:

当你重定向时,你能在散列中放一些标志吗?因此,与其向http://www.pageofmy.com/choice.php您发送到http://www.pageofmy.com/choice.php#1

然后在choice.php上,您可以。。。

<script>
if (location.hash=="#1") {
//show alert
}
</script>

这假设你可以控制pageofmy.com/choice.php。如果你重定向到其他你无法控制的网站,我不知道除了尝试弹出窗口(很可能会被现代浏览器阻止)之外,你还能怎么做。

最新更新