2012-05-02 59 views
-1

我需要禁用瀏覽器後退按鈕,同時在html頁面中提交提交按鈕以確保流程沒有終止。如何使用java腳本控制瀏覽器按鈕?

這裏是禁用瀏覽器後退按鈕的代碼,但它只在onload事件中工作。當我試圖在onclick事件中使用它時,它不會工作。

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
<title>New event</title> 
</head> 
<SCRIPT type="text/javascript"> 
window.history.forward(); 
function noBack() { window.history.forward(); } 
</SCRIPT> 
</HEAD> 
<BODY onload="noBack();" 
onpageshow="if (event.persisted) noBack();" onunload=""> 
<a href='page2.html' >Page 2</a> 
</body> 
</html> 

誰能知道如何禁用瀏覽器的後退按鈕,當我點擊html頁面

+0

我對這個問題也很感興趣!如果客戶關閉標籤,你會怎麼做? – p0rter

+0

@ p0rter在這種情況下,我們繼續做任何事情,但對於這種情況我們可以嘗試給出解決方案。 – user1345801

回答

3

它不會工作,因爲點擊後,它將在導航之前運行 - 因此它將轉到不正確的「前進」頁面。

使用onbeforeunload

var submitFlag=false; 
//set submitFlag to true on onclick of submit button 
window.onbeforeunload=function(e){ 
if(submitFlag){ 
    return false; 
} 
return "Are you sure you want to leave?" 

} 

這不能強制用戶雖然。你永遠不能強迫用戶不要回去。否則,這可能會導致嚴重的安全問題。

0

無法禁用瀏覽器的後退按鈕。不通過JavaScript,或其他任何東西。在服務器端,您可以跟蹤您的提交按鈕是否已被按下並採取相應措施。

0

您無法禁用瀏覽器後退按鈕。

您提供的代碼段不會「禁用」後退按鈕。我不相信你明白它的作用。

做些什麼:

  1. 在腳本標籤,模擬 「前進按鈕」 點擊(window.history.forward())。如果用戶剛剛按下後退按鈕,這可能會將我們帶回我們來自的地方。

  2. 當頁面加載(所以以前的黑客沒有工作),並從歷史記錄緩存(event.persisted)加載頁面,然後模擬點擊前進按鈕。

在任何時候有背按鈕禁用。相反,你所做的是寫一個頁面,打破行爲以下頁面。

您可能想改爲使用onbeforeunload事件。

+0

從技術上講,你可以通過一些涉及'pushState'和'onpopstate'的黑客代碼禁用瀏覽器後退按鈕](http://stackoverflow.com/questions/10790373/browsers-previous-or-next-button-control/ 10790394)。 –

相關問題