[英]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.