2015-12-09 56 views
2

我想改變「返回」瀏覽器按鈕的功能。我試過這個:我可以禁用「返回」按鈕瀏覽器功能嗎?

window.onbeforeunload = function() { 
    show_page(last_page, 'not-search'); 
} 
window.onbeforeunload = function() { 
    show_page(last_page, 'not-search'); 
} 

它的工作,部分:它調用的功能,但瀏覽器無論如何導航到前一頁。有沒有解決方案?

編輯 我需要做的是:

指數(Ajax內容)---用戶點擊--->其他Ajax內容(我稱之爲內容)
一個內容--->後退按鈕 - --->一個索引內容

+3

的[如何阻止瀏覽器後退按鈕使用javascript](可能的複製http://stackoverflow.com/questions/12381563/how-to-stop-browser-back-button-using- javascript) –

+0

[禁用瀏覽器「返回」按鈕](http:// stackoverflow。com/questions/7011334 /禁用瀏覽器後退按鈕) –

+0

我剛剛更新了我的答案,我看到你已經更新了你的問題。 –

回答

-1

從去前頁停止用戶

添加這個js在頁面

<script language="text/javascript"> 
window.history.forward(); 
</script> 
+0

爲什麼會以編程方式在pageload上前進(儘管不能有任何「肯定的「歷史記錄尚未)阻止後退導航? –

+0

如果你按下後退按鈕,它會轉到前一頁window.history.forward();將被執行,並且會再次讓用戶轉發。這樣你就無法通過瀏覽器返回。 如果沒有正面的歷史記錄,這段代碼什麼都不會做。 –

+0

這行代碼僅在頁面加載時執行一次,而不在另一頁加載或當前頁面處於卸載過程中時執行。 –

-1

的底部看看這個:http://www.irt.org/script/311.htm

報價從上面的網站:

簡單的答案 - 你不能。

較長的答案 - 您不能完全刪除用戶回到以前的位置的能力,儘管您可以使其更難。

後您的更新添加到您的問題:

如果您想在使用Ajax網頁的內容,您可以手動更新瀏覽器的歷史記錄。您還應該考慮在網址的末尾添加散列。

有關歷史API的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/History_API

1

返回你的函數來警告用戶,並給予取消該選項的字符串。

window.onbeforeunload = function() { 
    show_page(last_page, 'not-search'); 
    return "please do not use the back button"; 
} 

完全禁用是棘手和不好的做法。以這種方式限制用戶很容易被視爲垃圾郵件或不需要的行爲。

編輯

我看過你的編輯之後,我會建議使用history.pushState當你正在修改的頁面阿賈克斯。這樣,後退將導航到您想要的更早的狀態。請查看history API以瞭解您需要的所有功能。

當按下上一個按鈕時,它將觸發window.onpopstate函數,您可以在其中處理以加載正確的內容。見下面的例子:

window.onpopstate = function(event) { 
    alert("location: " + document.location + ", state: " + JSON.stringify(event.state)); 
}; 
+0

我不會向用戶顯示任何錯誤,我想讓他去ajax內容的前一個視圖 –

+0

檢查我更新的答案。我現在沒有時間寫代碼,但它應該給你一個正確方向的指針。 –