您好我有以下代码:
function redirect(){
window.location.href='logged_out_chat.php';
}
...在我的标题和以下正文标记中:
<body onunload="javascript:redirect();">
...当我在一台笔记本电脑上试用它时,它会重定向(当你点击任何链接时),但在我的其他笔记本电脑,台式机和笔记本电脑上,它会忽略重定向并转到你点击的任何链接上。 我花了好几个小时...都有相同的浏览器。我想知道是否有其他方法可以在用户点击链接等时重定向用户。
答案 0 :(得分:4)
您期望会发生什么?
当我在浏览器中关闭您的页面时,您会将我重定向到您喜欢的页面吗?
这可以解决安全性和用户控制问题。当我关闭页面时,你不应该干扰页面。
士气不依靠onunload
做任何不平凡的事情。
答案 1 :(得分:0)
当窗口卸载时,它会停止处理所有内容,这意味着ajax请求,待处理下载等,甚至冻结GIF动画。有些浏览器支持onbeforeunload
,但我完全同意@Raynos你不能指望这个事件,因此使用它不是一个好的设计决定。
答案 2 :(得分:0)
您无法劫持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;
}