0

リンクが AJAX コンテンツ領域にある場合を除いて、私は jQuery アドレス プラグインを使用して戻るボタンのサポートを有効にしています。例えば

<div id="content">
  <a href="example.html" rel="address:example.html" onclick="ajaxLoad(this);">link</a>
</div>

ここで ajaxLoad はcontentのコンテンツに置き換えられexample.htmlます。これを実行しようとすると、アドレス バーは変化せず、戻るボタンはコンテンツ領域外のリンクの最後のインスタンスに移動するだけです。

これを機能させる方法はありますか?

編集:

プラグイン: http://www.asual.com/jquery/address/

ajaxLoad関数の例:

function ajaxLoad(obj)
{
    $.get(obj, function(data)
    {   
        $("#main").html(data);
    }); 
    return false;
}
4

1 に答える 1

0

状況依存のwindow.locationを使用してこれを解決しました。

変更された ajaxLoad:

function ajaxLoad(obj, inline)
{
    if(!inline)
        window.location='#/'+obj.rel.substring(8);
    else
    {
        $.get(obj, function(data)
        {   
            $("#main").html(data);
        });
    }
    return false;
}

そして、最初のページ読み込みのハンドラーと、戻る/進むボタンが使用されたとき:

$.address.externalChange(function(event)
{
    var url = event.value.substring(1); //strips the leading slash
    if(url == "")
        url = 'index.php';
    loadPage(url, true);
});

これが最善の方法かどうかはわかりませんが、うまくいきます。

于 2010-07-09T02:48:38.693 に答える