1

隅に戻るボタンのあるページを作成しています。最初の戻るボタンで起動したページを非表示にする必要がある場合。ユーザーがページをナビゲートすると、戻るボタンが表示されます。

私はコードを使用しました

(window.history.length > 1)?$("#back").show():$("#back").hide();

しかし、私の問題は、 window.history.length 増え続けることです。

しかし、私の要件は、戻るページがない場合、戻るボタンを再び非表示にすることです。それを達成する方法は?

4

1 に答える 1

1

あなたにはもっと問題があります。ユーザーが Google から来た場合はどうなりますか? すでにウィンドウ履歴があります。ユーザーがサイトにアクセスしてから Google にアクセスし、その後戻ってきた場合はどうなるでしょうか。

@Marc Bで説明されている単なるナビゲーションシステムであれば、簡単です。ユーザーがどこから来たのか、どのように戻るのかがわかります(履歴を直接使用しないでください)。しかし、ユーザーがどのリンクをクリックしてもサイトに戻るボタンである場合は、さらに複雑になります。プライバシーの制限により、ユーザーの実際の URL 履歴 (長さのみ) にアクセスすることはできず、window.unload イベントのキャプチャーを使用する場合、ユーザーが移動している URL にアクセスすることはできません。したがって、選択肢は限られています。

1 つのオプションは、ローカル ストレージまたは Cookie のいずれかに保持する配列に、ページの読み込みごとにウィンドウの位置を記録することです。次に、window.history に依存するのではなく、この配列を使用して履歴の状態を管理する必要があります。ユーザーが戻るボタンをクリックすると、最後にアクセスしたサイトの URL が表示され、そこに移動します。最初のページの読み込みでアイテムが履歴配列に配置されることに注意してください。そのため、履歴ボタンを表示するか非表示にするかを確認する場所に応じて、履歴配列の長さを 0 または 1 と比較します。

于 2013-01-11T05:19:37.657 に答える