JavaScript body onunload无法正常工作

问题描述

| 嗨,我有以下代码
function redirect(){
     window.location.href=\'logged_out_chat.PHP\';
}
...在我的标题和以下正文标签中:
<body onunload=\"javascript:redirect();\">
...当我在一台笔记本电脑上尝试此操作时,它会按预期进行重定向(当您单击任何链接时),但是在我的另一台笔记本电脑,台式机和笔记本电脑上,它将忽略重定向并转到您单击的任何链接。 我已经花了几个小时...所有的浏览器都相同。我想知道是否有另一种方法可以在用户单击链接等时重定向用户。     

解决方法

您期望会发生什么? 当我在浏览器中关闭页面时,您会重定向到我喜欢的页面吗? 这又提高了安全性和用户控制能力。当我关闭页面时,您应该不会干扰它。 士气是不要依靠ѭ2来做任何不平凡的事情。     ,当窗口卸载时,它停止处理所有内容,这意味着ajax请求,待处理的下载等,甚至冻结了动画gif。有些浏览器支持
onbeforeunload
,但我完全同意@Raynos,您不能指望这次活动,因此使用它并不是一个好的设计决定。     ,您无法劫持onunload并重定向用户。这将阻止用户关闭其浏览器,刷新页面或手动导航到另一个站点。如果这是您要尝试的操作,那么您很不幸。所有onunload都很好,是询问用户是否确定要离开页面。 但是,如果您试图使单击的链接转到其他位置,那很容易。永久更改链接:
myLink.href = \'logged_out_chat.php\';
如果要临时更改链接,请添加一个单击处理程序,以后可以将其删除:
function goToLoggedOutChat(e)
{
    e.preventDefault && e.preventDefault();
    e.returnValue = false;
    location.href = \'logged_out_chat.php\';
}
mylink.onclick = goToLoggedOutChat;
要重新启用链接:
mylink.onclick = null;
要对页面上的每个链接执行此操作:
for (var i=0; i<document.links.length; i++)
{
    document.links[i].onclick = goToLoggedOutChat;
}