[英]Can we navigate to a different page if the user clicks on the back browser button?
我收到了Eric的一个非常有用的答案,即如何显示确认,即用户单击浏览器的后退按钮,从而为用户提供是否要返回的选择。
以下是他的答案:
您可以使用beforeunload
事件来实现。
$(window).bind("beforeunload", function() {
return "HI"; // Return whatever message you want
});
(要使用小提琴,只需重新加载页面,或导航离开或其他。)
我还建议您在有人以所需的方式离开页面时将其解除绑定(取消按钮?),否则您可能会遇到不良行为。
例如:
$("a").click(function() {
$(window).unbind("beforeunload");
});
题
现在,下面是我们讨论的内容,我们不知道是否有一种干净的方法可以做到这一点,但是我想尝试实现的是,如果用户确实确认他们要离开页面,那么我想浏览用户使用其他脚本(Text4.php),在此脚本中,它只是破坏了会话并将用户注销。 但是我想首先知道是否可行,其次您想回答这个问题的想法是什么?
这是不可能的。 您无法在用户访问的页面上模拟用户。 不要尝试为我控制浏览器,只需确保您的页面在我访问时在浏览器上显示并能正常工作。
不,afaik,当用户决定关闭选项卡,窗口或向后导航时,您无法更改URL。 这是有充分理由的。 在我决定离开此页面后,我不希望任何人将我导航到某些会员/垃圾邮件/任何网站:D
考虑对您的注销脚本进行异步调用,然后将用户指向所需的页面。
标记
<a href="path/to/logout" id="yourlogoutlink">Logout</a>
JS
$("#yourlogoutlink").click(function(e) {
e.preventDefault();
if(!confirm("Leave the page?"))
return;
$.post( $(this).attr('href'), function(data){
$(window).unbind("beforeunload");
window.location.href = '/some/url';
} );
});
您不需要JavaScript即可执行此操作。 我会在您的初始页中执行以下操作。
session_start();
if(isset($_session['token']){
//do log out stuff
} else {
$_session['token'] = //generate random var here
}
页面加载时,它会查看是否设置了变量,如果已设置,则注销,如果未设置,则注销。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.