0

我从 Eric 那里收到了一个非常有用的答案,关于如何显示确认是用户单击浏览器的后退按钮,让用户选择是否要返回。

以下是他的回答:

您可以使用beforeunload事件来实现这一点。

$(window).bind("beforeunload", function() {
    return "HI"; // Return whatever message you want
});​

小提琴

(要使用小提琴,只需重新加载页面或导航离开或诸如此类。)

我还建议您在有人以所需方式(取消按钮?)离开页面时取消绑定,否则您可能会遇到不良行为。

例如:

$("a").click(function() {
    $(window).unbind("beforeunload");
});

问题

下面是我们讨论的内容,我们不知道是否有一种干净的方法可以做到这一点,但我想尝试并实现的是,如果用户确实确认他们想要离开页面,那么我想导航用户到不同的脚本(Text4.php),在这个脚本中它只是破坏会话并将用户注销。但我想知道首先这是否可能,其次你有什么想法来回答这个问题?

4

5 回答 5

1

这是不可能的。您不能在用户访问的页面上模拟用户。不要试图为我控制浏览器,只要确保您的页面在我访问它时在浏览器上显示并正常工作即可。

于 2012-11-07T13:12:53.040 回答
0

不,当用户决定关闭选项卡、窗口或返回时,您无法更改 url。这是有充分理由的。在我决定离开页面后,我不希望任何人将我导航到某个附属/垃圾邮件/任何网站:D

于 2012-11-07T13:14:26.807 回答
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';

    } );

});
于 2012-11-07T13:16:09.813 回答
0

您可以尝试使用历史 API ...

您可以尝试这些跨浏览器 API。

https://github.com/browserstate/History.js/

https://github.com/devote/HTML5-History-API

于 2012-11-07T13:16:42.593 回答
-1

您不需要 JavaScript 来执行此操作。我会在您的初始页面中执行以下操作。

session_start();
if(isset($_session['token']){
 //do log out stuff
} else {
 $_session['token'] = //generate random var here
}

当页面加载时,它会查看是否设置了变量,如果是,则注销,如果不是。

于 2012-11-07T13:17:31.050 回答