8

コードで jQueryを使用して History.js ( click ) を使用しています。

ajax 経由で新しいコンテンツをロードするときは、次を使用します。

History.pushState({my:stateobject},"newtitle","supernewurl");

ブラウザで URL が更新されるため、これは機能しているようです。

ただし、戻るボタンまたは進むボタンが押されるたびにコードを接続できる場所がわかりません。これにはどのメソッド/イベントが使用されますか?

4

3 に答える 3

9

次のように、イベント ハンドラーをイベントにバインドする必要がありますstatechange

$(window).bind('statechange',function(){
// Do something, inspect History.getState() to decide what
})

History.js に付属する完全な JavaScript スニペットがあり、サイトを完全に「ajaxify」するために使用できます: https://github.com/browserstate/ajaxify

より多くのインスピレーションを得るためにそこを見てください。

于 2012-07-13T19:53:00.360 に答える
4

何もないため、戻るクリックイベントをキャプチャしません。

あなたがしたいことは、、、メソッドを使用して、オブジェクト が正しいhistory状態にあることを確認することです。window.history.pushStatewindow.history.popStatewindow.history.replaceState

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

于 2012-07-07T23:24:04.457 に答える
2

「onPopState」イベントを使用して、カスタム AJAX コードをトリガーすることができました。

window.onpopstate = function(event) {
  $(fellowModal).foundation('reveal', 'close');
};

私は他のいくつかのことを試しましたが、それが私のために働いたものです.

于 2013-10-08T16:47:15.587 に答える