6

この時点で、ハッシュ値を使用して現在ユーザーに表示されている写真を決定し、ページを友人などに送信することをサポートするフォトギャラリーがあります。何かのようなもの:

http://url/photos/#photo-4

次または前のボタンをクリックした後に対応する画像をロードしたら、次を使用して JS 1.1 仕様に従って URL を変更します。

top.location.replace(url.url + hash);

私たちが望んでいた動作は、履歴アイテムが作成されていないことです。そのため、ユーザーは戻るボタンを使用して前の写真を表示する代わりに、戻るボタンを使用してフォトギャラリーを離れることができます。

IE と Firefox ではこの方法は魅力的に機能しますが、Safari と Chrome では変更された URL の履歴項目が作成されます。このようにナビゲートするためにハッシュを使用するときに履歴アイテムを作成する方法のサンプルがたくさん見つかりましたが、これを別の方法で行いたいです。どんな手掛かり?

4

3 に答える 3

3

これは現在期待どおりに機能します。

Safari [ 5.1.7 ]では、location.replace()は期待どおりに機能します。URLが置き換えられ、戻るボタンのキューに何も追加されず、履歴メニューにも何も追加されません。

Chrome [ 21.0.1180.82 ]では、location.replace()は少し注意が必要です。URLが置き換えられ、戻るボタンのキューには何も追加されませんが、履歴メニューに項目が追加されます


これが難しいのは、履歴メニューと戻る/進むボタンの2つの異なる履歴キューがあることです。戻るボタンと進むボタンをクリックして押したままにすると、キューが表示され、履歴メニューと比較されます。

また、戻る/進むボタンの履歴キューはアクティブなタブに関連付けられています。また、ボタンの履歴は、履歴メニューをクリアしても、少なくともタブを閉じるまで残ります。

于 2012-08-26T00:05:01.763 に答える
3

現時点では解決策はないようです。

于 2009-09-10T06:20:37.920 に答える
0

URL全体を置き換える代わりに、window.location.hash = newHashを使用してハッシュを割り当てることを検討しましたか?

https://developer.mozilla.org/en/DOM/window.location

于 2009-07-31T13:38:21.577 に答える