2011-02-16 11 views
15

TwitterとGawkerのhashbangのURLを使ったすべての否定的な報道で、私は実際にそれらを使用するためのサンプル/ライブラリを見つけるのに非常に苦労しています。hashbang/shebang(#!)URLを操作するためのjavascriptライブラリはありますか?

Googleのウェブサイトにあるjavascriptカルーセルでhashbang URLを使用して、カルーセルの特定のページに直接リンクすることができます。

新しいURLをページの場所にプッシュするため、およびページの読み込み時にURLを解析するために、クロスブラウザのライブラリや例がありますか(プロトタイプを使用しているので非jQueryが望ましい)

+1

負の数値? [完全に受け入れられる](http://code.google.com/web/ajaxcrawling/docs/specification.html)が私には見えます。 –

+0

えええええええええええええええええええええええええええええええええ? – drudge

+1

ここに1つあります:「ハッシュ・バンズでウェブを壊す」http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs私が特に好きなのは、HashBangsとJavaScriptの正確さについて、サイトの作者は、HTMLの新しい世界では、XHTMLを恐れている人々がXHTMLがそうすると言ったすべての方法でウェブサイトを壊すことができた。 – scriptocalypse

答えて

6

GoogleではURLルートマッピングを行っているライブラリ(まだhttps://github.com/OpenGamma/RouteMapを探している場合)に取り組んでいます。

+0

これを正しく読んだら、libにurlパターンを追加し、パターンの1つと一致するようにハッシュが変更されたら、関連する関数をトリガーしますか? – ChiperSoft

+0

はい、そうです。私はそれをもう少し明確にするためにドキュメントを更新しました。返事が遅くなってごめん。 – afshin

+0

これは多かれ少なかれ私が探していたものです。ありがとうございました! – ChiperSoft

0

https://github.com/browserstate/History.js私はBBQ Jqueryを使用しているので、私はそれについての経験はありませんが、あなたの問題を解決するはずです。

+0

これは本当に近いしかし、それは別のブラウザで全く異なるURLを生成しています。私はそれが一貫している必要があります。 – ChiperSoft

1

Sammy.jsは、Sinatraで使用されているハンドラのようなハンドラを作成するために使用します。

0

Google Closure Libraryは、ブラウザ履歴スタックのための本当にクールな実装です。履歴ソースコードfrom hereにアクセスできます。

クロージャライブラリの履歴マネージャを使用するには、非表示の入力を定義する必要があります。トリックがあります。クラスに入力フィールドを与えないと、入力フィールドが作成されますが、クロスブラウザがサポートされているため、document.writeというDOMを追加しようとします。最も簡単な方法は、隠された入力を提供することです。

これはgoog.Historyの簡単な実装です。

var history = new goog.History(false, '', document.getElementById('historyInput')); 
goog.events.listen(history, goog.history.EventType.NAVIGATE, function() { 
    console.log(history.getToken()); 
}); 
history.setEnabled(true); 

ページ内のハッシュされたURLに移動すると、変更されたハッシュがログとしてコンソールに表示されます。

関連する問題