簡體   English   中英

如果用戶單擊后退瀏覽器按鈕,我們可以導航到其他頁面嗎?

[英]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';

    } );

});

您可以嘗試使用History API ...

您可以嘗試使用這些跨瀏覽器的API。

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

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

您不需要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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM