URL ハッシュの JQuery ライブラリを調べてみましたが、適切なものは見つかりませんでした。「履歴プラグイン」がありますが、バグが多く、柔軟性がないことは誰もが知っています。
div 内にページを読み込んでいます。URLハッシュと一緒に前後に移動する方法が必要です。
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
これらすべてを処理できる最高のライブラリは何ですか?
URL ハッシュの JQuery ライブラリを調べてみましたが、適切なものは見つかりませんでした。「履歴プラグイン」がありますが、バグが多く、柔軟性がないことは誰もが知っています。
div 内にページを読み込んでいます。URLハッシュと一緒に前後に移動する方法が必要です。
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
これらすべてを処理できる最高のライブラリは何ですか?
私は最近、 jquery history plugin、history、およびjQuery BBQの 3 つの異なるプラグインを調べました。
それらはすべてセットアップが非常に困難でした。jQuery.history は機能しましたが、IE7 ではまだ問題がありました。そこで、BBQ に変更すると、すべてのターゲット ブラウザー (IE6、IE7、IE8、Fx3) で問題なく動作しました。
そこで、jQuery BBQ プラグインをお勧めします。
編集:これは、カスケード ドロップダウンを使用した jQuery BBQ のデモを書いたばかりのブログ投稿です。
jQueryアドレスを試しましたか? SWFAdressを作ったAsualから。Asual-jqueryアドレス
jQuery アドレス プラグインは、強力なディープ リンク機能を提供し、Web サイト セクションまたはアプリケーションの状態を指す一意の仮想アドレスを作成できます。
History.jsは十分に文書化/管理されており、すべてのブラウザーをサポートしています。
https://github.com/browserstate/history.js
サイトから:
History.js は、すべてのブラウザーで HTML5 History/State API (pushState、replaceState、onPopState) を適切にサポートします。データ、タイトル、replaceState の継続的なサポートを含みます。jQuery、MooTools、およびプロトタイプをサポートします。HTML5 ブラウザーの場合、これは、ハッシュを使用する必要なく、URL を直接変更できることを意味します。HTML4 ブラウザーの場合は、古い onhashchange 機能を使用するように戻ります。
私は本当に単純な歴史 (dhtmlHistory が必要) で幸運に恵まれました。jQuery 固有ではありませんが、IE、Firefox、および Webkit で動作し、多くのセットアップは必要ありません。
おそらく、この jQuery History プラグインを試してみてください: https://github.com/balupton/jquery-history/クロスブラウザーのサポート、ハッシュへのバインド、ハッシュのオーバーロードなどを提供します。
また、Ajax 拡張機能もあり、Web ページを適切な Ajax アプリケーションに簡単にアップグレードできます: https://github.com/balupton/jquery-ajaxy/
全体として、十分に文書化され、サポートされ、機能が豊富です。ここでも賞金首の質問を獲得しました URLでAjaxリクエストを表示する方法は?
または、HTML5 History API を使用する場合は、https ://github.com/browserstate/history.js があります。
私の知る限り、すべての履歴プラグインは同じことを行います:
setInterval(function() {
if(theHashChanged) {
someFunction(oldHash,newHash);
}
}, 500/*whatever*/);
それはかなり核心です(リンクをクリックせずに履歴エントリを追加するためのブラウザのハックなどを除いて). ちょっとしたハックであり、履歴の変更を処理するためのクロスブラウザー API がないため、常にバグが発生します。
その上、この種のユーザー エクスペリエンスはあまり良くありません。ユーザーは、ページから移動するために [戻る] ボタンを 4 回クリックする必要があることを理解していません。