2011-01-25 5 views
3

簡単な説明は次のとおりです。iWebKitを使用してフルスクリーンiPhoneアプリとしてWebページを表示しています。これを行うと、不動産が得られますが、ナビゲーションボタンは失われます。私は、ページ上で前進/後退として機能するボタンを置いて、その能力を取り戻すことができます。これは、「ホーム」ボタンやタイトルのようなボタンと同じ行に他のコンテンツを置くことができるため、望ましいことです。Javascriptでブラウザ履歴に次のページがあるかどうか確認できますか?

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

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

ブラウザの履歴に次/前のページがあるかどうかを確認する方法はありますか?それはブラウザの履歴を見ることが可能である場合

+0

私はあなたの質問を理解することはできませんが、なぜhistory.nextが隠されているか教えてください。次のリンクによると、非表示ではありませんhttp://www.exforsys.com/tutorials/javascript/javascript-history-object-properties-and-methods.html –

+0

history.nextは未定義を返します。少なくともそれは私のブラウザが返すもので、 "history.next returns undefined"を検索すると、セキュリティ上の理由からアクセスできないというメッセージが表示されます。あなたはブラウザの履歴にあるURLにウェブページがアクセスすることを望まないでしょう。 – wdahab

+2

明確にするために、わかりやすい場合は、実際に次のページが何かを確認するつもりはありません。私はちょうど1つがあるかどうか知りたい。それは私にとっては無害だが、おそらく私は間違っている。 – wdahab

答えて

0

は奇妙なことに、私は理解しても巨大セキュリティ上の問題があるだろう、私は(簡単に)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)の最後および/または最初のアイテムが対応しているかどうかを確認できます。そのうちの1つに対応する場合は、がリストの先頭または末尾にある可能性があります(ただし、リストの中央の同じアドレスにある可能性もあります)。もしそうでなければ、あなたは間違いなく歴史の端にいません。

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

+0

Heh、面白いハックと間違いなく大きなセキュリティホール。 Chromeを使用する正当な理由は、私が推測します。 :)しかし、もちろん、私の場合、WebKitのサポートが必要なので、不利な点があります。 – wdahab

0

どのような巨大なセキュリティ問題ですか?ブラウザーは既に参照元でサーバーにpingを実行していますが、この問題だけではアドレスに機密情報($ _GETのパスワードを渡すなど)を絶対に入れないことはよく知られています。

私はあなたが前のページにアクセスできることを知っています、私は事実を知っています。

関連する問題