尝试像这样一起使用 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;
});
});
请注意 nowDoThisOpener 是一个您可以在父页面上定义(并且显然可以调用任何您想要的东西)的函数。而且,就像我建议的那样,您也可以传递信息。
此外,在您的示例中,您设置了一个空函数 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。如果您要重定向到您无法控制的其他网站,除了尝试弹出一个弹出窗口(这很可能会被现代浏览器阻止)之外,我看不出您如何做到这一点