如果用户点击后面的浏览器按钮,我们可以导航到不同的页面吗?

时间:2012-11-07 13:06:19

标签: php javascript jquery ajax browser

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

以下是他的回答:

您可以使用beforeunload事件来实现此目标。

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

Fiddle

(要使用小提琴,只需重新加载页面或导航或等等。)

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

例如:

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

问题

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

5 个答案:

答案 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)

您可以尝试使用History API ...

您可以尝试使用它的这些跨浏览器API。

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

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

答案 4 :(得分:-1)

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

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

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

相关问题