0

短い質問:

特定のページ(タブを使用)で、戻るボタンでページのURL(履歴)が変更されないようにしようとしています。ユーザーが戻るボタンを押すと、タブが変更されますが、表示される URL は変更されません。Address プラグインでそれを行うにはどうすればよいですか?

長い質問:

上記の説明に加えて、次のような住所プラグインを使用していると言わざるを得ません。

$.address.strict(false);
$.address.externalChange(function(e) {
    changePageFunction(e.value);
});

このchangePageFunction()内で、 とを設定$.address.title(the_title);して$.address.value(the_value);います。私が試したのは、changePageFunction()への直接呼び出しを次のように変更することです。

$.address.externalChange(function(e) {
    if (!isTabsPage) {
        changePageFunction(e.value);
    } else {
        changeTab();
    }
});

これは機能しますが、表示される URL が変更されます ([戻る] ボタンを押すたびに 1 つ戻ります)。

私はできません:

  • 各タブに異なる URL を追加します ($.address サンプルのように)
  • 他の同様のアドレスプラグインを変更する
  • 現在のページング システムの変更 (少し複雑)

isTabsPageが true の場合はchangeTab ()関数が機能し、そうでない場合は現在のメソッドが機能します ($.address 履歴が管理されます)。

履歴を凍結する方法はありますか?

4

2 に答える 2

0

ブラウザの戻るボタンを制御することはできません。最初にハッシュを設定すると、ブラウザは常に戻るボタンでハッシュを変更できます。唯一のオプションは、ハッシュを取得して手動で変更することです。これにより、ループなどが作成されて戻るボタンの機能が損なわれます。

これはjQueryとは関係ありません。jQuery が行うことは、location.hash プロパティを操作することだけです。

http://www.ezineasp.net/post/Javascript-Location-Hash-with-Example.aspx

なぜこれをしたいのですか?アプリケーションの状態がハッシュに反映されている必要があります。

于 2012-03-22T17:47:46.707 に答える
0

HTML5 には、これを処理するためのネイティブの履歴オブジェクトがあります。ユーザーがタブを変更したときに pushState 関数を使用し、ユーザーが前後に移動したときに popState イベントを処理する必要があります。@balupton hereによる古いブラウザ用のすばらしいポリフィルがあります。

于 2012-03-22T17:51:56.137 に答える