4

ここに簡単な説明があります: iWebKit を使用して、Web ページをフルスクリーンの iPhone アプリとして表示しています。これを行うと、不動産は得られますが、ナビゲーション ボタンは失われます。ページに進む/戻るボタンを配置して、その機能を取り戻すことができます。これらのボタンと同じ行に他のコンテンツ (「ホーム」ボタンやタイトルなど) を配置できるため、これは望ましいことです。

実際に移動する次のページまたは前のページがあるかどうかに応じて、これらの JavaScript を使用した進むボタンと戻るボタンの表示を制御できるようにしたいと考えています。たとえば、次のページがない場合、次のボタンはグレー表示され、クリックできなくなります。ボタンの表示方法を制御できない場合、ボタンをクリックできますが、効果はありません。これは、ユーザーの混乱につながる可能性があります。

結論として、履歴に次のページがあるかどうかを教えてくれる、実際にアクセスできるデータがあるかどうかを知りたいです。ついでに、前のページ。私の読書から、history.nextセキュリティ上の理由から隠されています。これらのページが存在するかどうかを確認するのではなく、実際にページを遷移する方法としてのみ役立つようですhistory.forward()。) は、履歴にあるページ数を示しますが、そのキューのどこにいるかはわかりません。history.go(1)history.length(

ブラウザの履歴に次/前のページがあるかどうかを確認する方法はありますか?

4

2 に答える 2

1

奇妙なことに、ブラウザの履歴を見ることができれば大きなセキュリティ上の問題があることは理解していますが、Firefox 4b9 で現在の履歴を (簡単に) 一覧表示することができました。

var i, h = window.history, o = document.getElementById("output");

o.innerHTML = "<b>" + window.location.href + "<\/b><br>";

for (i = 0; i < h.length; i++)
    o.innerHTML += h[i] + "<br>";

このリストを使用して、最後のアイテムまたは最初のアイテムがwindow.location.href(すべてのプロパティhistory.currentが保護されている:=S) に対応しているかどうかを確認できます。それらのいずれかと一致する場合は、リストの先頭または末尾にいる可能性があります (ただし、リストの中間のどこかに同じアドレスにいる可能性もあります) そうでなければ、間違いなく歴史の端にいるわけではありません。

そして、悪いニュースがあります。これを WebKit ベースのブラウザに適用したいので、上記のコードを Chromium でテストしましたが、配列のような項目はwindow.historyありませんでした。

于 2011-01-25T21:02:12.107 に答える
0

重大なセキュリティ問題とは!? ブラウザーはすでにリファラーを使用してサーバーに ping を送信しています。この問題だけでも、機密情報をアドレスに含めてはならないことはよく知られています ($_GET でパスワードを渡すなど)。

前のページにアクセスできることは知っています。事実としてそれを知っています。

于 2014-02-12T11:20:57.510 に答える