2009-08-05 13 views
1

javahriptにwindow.historyオブジェクトがあります。javascriptを使用して完全なURL履歴を取得

window.history.lenght またはhistory.goを使用して歴史の中で次/前のURLにリダイレクト(N)

を使用して、歴史のな長さを取得することが可能ですのURLを取得する任意のトリックはあります履歴オブジェクト? URLは読み取り専用ではないため、履歴オブジェクトのある は使用できません。

ご意見はありますか?

+4

最初の質問は、そのようなことが必要な理由です。 – rahul

+0

サイトの統計情報です。私はバナーネットワークを使用しています。誰かがimg.doubleclick.comから来た場合、私は現在の訪問者を私にもたらすサイトの本当のURLが何かを見たいと思っています。 – Zelid

+4

この質問は、ダブルクリックバナーネットワークでのサポートリクエストについての話題にはならないようです。 – hakre

答えて

12

これは不可能であり、主要なブラウザでもそうなりません。それは重大なプライバシーとなり、same origin policy違反になります。

+0

少なくとも現在の同一元のポリシースコープ内の(現在のセッション)履歴を読むことはいいと思います;-) – NicBright

4

ブラウザの履歴は、リンクの色を検出することでJavaScript内で判断できます。これは異なるURLを試すことによってのみ機能し、すべての履歴オブジェクトを取得することはできません。

<script> 
function urlvis(url){ 
document.getElementById('gurl').innerHTML="<a id=geturl href="+url+" >^</a>"; 
x=document.getElementById('geturl'); 
color=document.defaultView.getComputedStyle(x,null).getPropertyValue('color'); 
if (color=="rgb(85, 26, 139)") visited=true; else visited=false; 
document.getElementById('gurl').innerHTML=""; 
return visited;} 
</script> 
<div id=gurl></div> 

ここで、innerHTMLで制御できる隠し要素をページ内に作成します。注意このメソッドはfirefoxで動作するようテストされているだけです。

EDIT:これは一度加工方法でしたが

、最も新しいブラウザでは、リンクの計算されたスタイルの正確な読み取りを取得することはできません。私はこの変更がFirefox 4から始まったことに気付きました。とにかく時間があり、プライバシーの問題でした。

+0

これはハッカーがクロスサイトのために使用するものです – Zelid

+2

これはFirefox 6でこれをテストしました。すべてのURLはFF6で同じ色になります。上の例は、FF3.6とFF4.0で動作します。 –

+2

はい、これは過去のものです。ブラウザのベンダーが見落として対処していなかったCSSのリンクカラー(訪問されたリンク;:訪問済み)を介した悪用がありました。これは今修正する必要がありますが、インターネットを使用することはあなたのプライバシーとコンピュータのセキュリティには悪いことに注意してください。そのような攻撃(およびスパイのウェブサイト)から保護する簡単な方法は、業界および広告パートナーの要件のためにFirefoxで再び複雑にされているjavascriptを無効にすることです。 – hakre

関連する問題