[英]preserving browser “back” button functionality using AJAX/jQuery to load pages and history.pushState() method
我想通過AJAX(jQuery load
方法)加載頁面並通過history.pushState
方法將URL推送到瀏覽器欄時保留后退按鈕功能。 單擊瀏覽器后退按鈕時出現問題,第一次單擊僅恢復以前的URL但不加載上一頁。
到目前為止,這是我的代碼:
$(function(){
var profile_url= "/profile";
$('#click_button').click(function(){
$('#main_content').load(profile_url);
history.pushState({profile:profile_info}, "profile", profile_url);
});
});
我的問題是,有沒有辦法在第一次單擊后退按鈕時將上一頁的AJAX加載到#main_content
div中?
任何幫助/建議將不勝感激。
為此,您需要訂閱'popstate'事件。
在導航到會話歷史記錄條目時,在某些情況下會觸發popstate事件。 HTML5規范
你可以這樣做:
window.onpopstate = function() {
$('#main_content').load(location.href)
};
您可以使用popstate
事件來實現此目的。 有關詳細信息,請參閱https://developer.mozilla.org/en/DOM/window.onpopstate 。
另請查看History.js ,它提供了一個包裝器,如果瀏覽器不支持歷史記錄API,則可以回退到url主題標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.