2012-03-22 29 views
0

短い質問:私は、特定のページにそれを作るしようとしているJquery Address Plugin:履歴の変更を回避する方法は?

はバックボタンがページのURL(履歴)を変更しません(タブを使用しています)。それは、私はユーザが戻るボタンタブを変更するが、URLが表示されないときに必要です。アドレスプラグインでどうすればいいですか?

ロング質問:上記の説明に加えて

、私は私はこのようなアドレスのプラグインを使用していると言っている:このchangePageFunction(インサイド

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

私は」 mを$.address.title(the_title);$.address.value(the_value);に設定します。

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

これは動作しますが、URL表示が変更された(押された各バックボタンのために戻って1位を行く):私が試したことは、このようなものでchangePageFunctionへの直接呼び出し()を変更することです。

私はできません:

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

アイデアがめざします場合isTabsPageが、その後changeTab()関数で真であるということですrk、そうでない場合は、現在のメソッドが動作します($ .address history managed)

ヒストリをフリーズする方法はありますか?

答えて

0

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

0

ブラウザの戻るボタンは制御できません。最初にハッシュを設定すると、ブラウザはバックボタンでハッシュを変更できるようになります。あなたの唯一の選択肢は、ハッシュをつかんで手動で変更することです。これは、ループなどを使ってバックボタン機能を破ることになります。

これはjQueryとは関係ありません。すべてのjQueryはlocation.hashプロパティを操作します。

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

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

関連する問題