1

私の今日を占める問題は、「jQuery履歴プラグインでページの更新をキャッチするにはどうすればよいですか」です!

いくつかのコードから始めます:

function changePage(PageURI){
    History.pushState({PageURL:PageURI}, PageURI, "/"+PageURI);
}

// Bind to StateChange Event
History.Adapter.bind(window,'statechange',function(){
    var State = History.getState();
    dispatchURL(State.data.PageURL);
});

したがって、すべてがより良い世界で完全に機能し、すべてのアンカーには :

onclick="javascript:changePage('New-Page');"

秘訣は、ページの更新 (F5 またはブラウザーのアイコン) を行うと、History statechange イベントが発生しないことです (これは、URL が変更されないということです)。

History プラグインを使用している人は、ページの更新をどのように処理するか、または History (または単に jquery ) イベントを介してページの更新イベントをキャッチする方法を教えてもらえますか?

ありがとう !

編集

より良い解決策を待っている間、トリックを行う回避策を次に示します。

window.onbeforeunload = function() {
    History.pushState({PageURL:'#'}, '#', '/#');
}
4

2 に答える 2

0

あなたはこれを行うことができます:

function changePage(PageURI){
  History.pushState({PageURL: PageURI, rand: Math.random()}, PageURI, "/"+PageURI);
}

この方法に欠点があるかどうかはわかりませんが、ページの更新時に statechange がトリガーされます。

于 2014-02-25T07:20:40.517 に答える