我收到了Eric的一个非常有用的答案,关于如何显示确认信息是用户点击浏览器后退按钮,让用户可以选择是否要返回。
以下是他的回答:
您可以使用beforeunload
事件来实现此目标。
$(window).bind("beforeunload", function() {
return "HI"; // Return whatever message you want
});
(要使用小提琴,只需重新加载页面或导航或等等。)
我还建议你在某人以理想的方式离开页面时取消绑定(取消按钮?),否则你可能会遇到不良行为。
例如:
$("a").click(function() {
$(window).unbind("beforeunload");
});
问题
以下是我们讨论的内容,我们不知道是否有一种干净的方法可以做到这一点,但我想要尝试和实现的是,如果用户确实确认他们想要离开页面,那么我想要将用户导航到不同的脚本(Text4.php),在此脚本中,它只会破坏会话并将用户注销。但我想知道,如果这是可能的,首先是你的想法,以回答这个问题?
答案 0 :(得分:1)
这是不可能的。您无法在用户访问的页面上模拟用户。不要试图为我控制浏览器,只要确保您的页面在浏览时显示并在浏览器上正常工作。
答案 1 :(得分:0)
不,当用户决定关闭标签,窗口或导航回来时,您无法更改网址。这是有充分理由的。在我决定离开页面之后,我不希望任何人将我导航到某个联盟/垃圾邮件/任何网站:D
答案 2 :(得分:0)
考虑对您的注销脚本进行异步调用,然后将用户指向所需的页面。
<强>标记强>
<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';
} );
});
答案 3 :(得分:0)
答案 4 :(得分:-1)
您不需要JavaScript来执行此操作。我会在您的初始页面中执行以下操作。
session_start();
if(isset($_session['token']){
//do log out stuff
} else {
$_session['token'] = //generate random var here
}
当页面加载时,它会查看是否设置了变量,如果是,则注销,如果没有设置。