6

historyオブジェクトを使用してブラウザーの履歴にアクセスすることは知っています。具体的にはhistory.back();history.forward();およびhistory.go(item-number)(またはhistory.go(url)) を使用できます。ユーザーが現在ブラウザの履歴のどこにいるかを判断しようとしています。

たとえば、Firefox は履歴からの個々の URL へのアクセスをサポートしているかもしれませんが、20 個の URL の履歴には繰り返しの URL が含まれている可能性があるため、それは私が求めているものではありません。

プロジェクト内の履歴には関心がないことに注意してください。むしろ、ユーザーのセッション内のブラウザ履歴に関心があります。

たとえば、ユーザーがブラウザを開いて 20 ページを閲覧した場合、履歴には 20 個のオブジェクトが含まれます。その後、ユーザーは[戻る] ボタンを 4 回押して、20 ページ中の 16 ページ目 (0..19 ページ中の 15 ページ目) にたどり着きました。JavaScript を使用してこの現在のオフセット (16 または 15) を取得する方法はありますか? はいの場合、どのように?

4

2 に答える 2

3
history.length

現在の履歴の長さを返します。

残念ながら、自分がどこにいるのかを把握する方法はありません。

于 2012-10-15T12:50:56.967 に答える
2

これが役立つかどうかはわかりませんが、HTML5 では、ブラウザの履歴リストの各項目に状態オブジェクトを追加できます。これにより、各項目のインデックス (つまり、history.length最初に作成されたときの値) を保存して、後で調べることができます。

これは、私が見つけた唯一の解決策です。

詳細については、こちらのソリューションを参照してください。

于 2015-08-17T15:44:47.877 に答える