0

私はjqueryajax呼び出しを使用して、リンクをクリックしてdivのコンテンツを変更していますが、URLは常に同じです。つまり、コンテンツが変更されただけでリンクをクリックしても変更されません。

リンクをクリックしてURLを変更するのに役立つhistory.pushStatesを見つけましたが、履歴状態は作成されません。つまり、ブラウザの戻るボタンが過去のajaxcallsを呼び出していません。

これは私のJavaScriptコードです。

function PostFunc(id,page,name)
{
$.ajax
({
type: "POST",
url: "doAjax.php",
data: "mode=viewtopic&threadid="+id+"&page="+page,
success: function(msg)
    {
    $("#entrylist").ajaxComplete(function(event, request, settings)
        {
        $("#entrylist").hide().html(msg).fadeIn();
        counter = 0;
        /* TODO : LEARN PUSHSTATES */
        var replaced = name.replace(/ /g,"+");
        history.pushState(null, null,"viewtopic.php?title="+replaced);
        });
    }
});

ええ..私の問題はすぐに私のjqueryコードでプッシュステートを処理する方法がわからないことです、そして他のすべてのコードはajaxcalls用ではないようにとても奇妙に見えます:/

4

1 に答える 1

0

hashchangeイベントを追跡し、状態をURLのウィンドウハッシュ部分にプッシュする必要があります。これは、動的ページで履歴を保持することについての良い議論です。

この投稿も役に立ちます。私は動的ページにhashchangeプラグイン(ここで詳しく説明します)を個人的に使用しました。これは、履歴を同期して維持し、動的コンテンツの戻る/進むボタンをサポートするために問題なく機能します。

于 2012-08-21T08:34:20.753 に答える