簡體   English   中英

使用pushstate和jQuery加載返回導航

[英]Back navigation with pushstate and load in jQuery

我目前正在使用jQuery將內容動態加載到holder div中,然后使用pushstate更新url。

到目前為止,我有以下代碼(為簡單起見,某些代碼不包括在內):

$("body").on("click", "a:not(.noclick)", function(){

    history.pushState({path: $(this).attr("href")}, "", $(this).attr("href"));

    $("#main").load($(this).attr("href"));

    return false
});

它可以按預期工作,並且url更改為在新內容加載時應有的狀態,但后退按鈕當前不起作用,當按下back時,URL會更改為前一個,但沒有其他反應。

我以某種方式構建頁面,您可以使用帶有jQuery的網站來加載沒有標題的內容,也可以不使用任何javascript,並且頁面不會從其url中顯示出來,因此該部分沒有問題。

有沒有一種方法可以使用向后導航上的加載來加載最后的推送狀態歷史記錄? 我寧願不使用哈希,但不確定是否可以不使用哈希?

如果有幫助,Facebook似乎會通過導航來做到這一點?

https://developer.mozilla.org/zh-CN/docs/DOM/window.onpopstate

如果您不想使用pjax,此鏈接將為您提供幫助。

您需要一個popstate事件處理程序。

但是為什么不通過使用jquery-pjax來解決其他人的問題。

一旦包含了pjax腳本,以下可能就足夠了:

$(function() {
  $("a:not(.noclick)").pjax("#main", { fragment: "#main" });
});

這種特殊用法不需要​​任何服務器處理即可刪除非#main內容,但pjax還支持您引用的部分內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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