0

私は自分のページでAJAXベースのロードでこのプラグインを使用しています。これは、ハッシュフラグメントが含まれていない着信リンクをキャッチしようとする場合を除いて、正直に言うとすべてをうまく処理します。

アドレスバー
の着信リンク->hostname.com/path/
ユーザーが別のajax状態に移動します->hostname.com/ path / #hash
ここでは、ハッシュがこれを表しているため、プラグインがアドレスバーにパスを含めないことを期待しています。

AJAXGET
着信リンク->hostname.com/path/
ユーザーは別のajax状態に移動します->hostname.com/path/
実際のリクエスト正しい状態をロードします。

アドレスバーへのパスを追加しないようにする方法はありますか?
例:hostname / web-development /
#web-development
の代わりに
hostname /#web-development

クリック処理

$('a.internalLink')。live('click'、function(event){
event.preventDefault(); clickedLink = $(this); $ .address.value(clickedLink.attr('href')。replace(ベース、'')); });

4

2 に答える 2

0

アンカー タグがクリックされたイベントをキャプチャし、event.preventDefault();を使用してデフォルト アクションが発生しないようにする必要があります。

$(document).delegate('a', 'click', function (event) {
    var targetHref = this.href;

    window.location.href = targetHref; // or whatever

    event.preventDefault(); // stop the page changing.
});

また、ブラウザー履歴の操作を可能にする新しい HTML 5 の追加にも興味があるかもしれません。つまり、AJAX を使用してページを更新できますが、それでもアドレスは変更されます。詳細については、こちら(Mozilla Developer Center) を参照してください。

于 2010-12-06T11:18:34.287 に答える
0

ハッシュ化されていない URL をハッシュ化された URL にリダイレクトすることで、この問題を回避しました。

if(!window.location.hash){
  window.location.href = 'http://'+window.location.host+'/#'+window.location.pathname+window.location.search;
};

それほどエレガントではありません。もっと良い解決策があるかもしれませんが、うまくいきます。

于 2010-12-08T08:26:51.970 に答える