2012-05-03 2 views
0

I'vは、GoogleのAjaxのページナビゲーション '#' 記号は

https://mail.google.com/mail/?shva=1#inbox 

特に

このURLをブックマークすることができ#inbox に、これがどのように達成することができますに注意を払わ?

+1

[githubはページをリロードせずにURLをどのように変更するのですか?](http://stackoverflow.com/questions/7591087/how-does-github-change-url-without-reloading-a-page) – Quentin

+0

https://mail.google.com/mail/のページはJavaScriptが読み込まれた後にハッシュタグをチェックし、ページを非同期に変更して「受信トレイ」の内容を表示します。彼らはバックボタンを壊さず歴史を残すために他の仕組みを採用しているので、それほど単純ではありません。 –

答えて

1

Ajax呼び出しでJavascriptで処理されているため、クエリ文字列内の内容を考慮しています。 JavaScriptですべての#タグを見つけるための

例は次のとおりです。最初のリンクのようなものを含むページをロードするときに、ページ上のリンクをクリックすると、#アンカーを含む

urlquery=location.href.split("#"); 

生成され、ロケーションアドレスを変更しますが、現在のページのアンカーであるため、ページがリロードされることはありません。 clickイベントへのjavascriptのフックは、Ajaxを介して実際のコンテンツをロードする実際の仕事をします。

ただし、アドレスがロケーションバーで変更されているため、ブックマークに保存できます。そのブックマークがロードされると、ベアボーンWebにjavascriptがロードされ、#のタグにあるタグが再度検出され、実際のコンテンツがAjax経由でロードされます。

Google ChromeのTwitterページのサムネイルには、サムネイルが生成されてもAjaxがまだコンテンツを読み込んでいないため、メッセージのないインターフェースが常に表示されます。

関連する問題