2009-08-05 188 views
1

JavaScript中有window.history對象。使用javascript獲取完整的網址歷史記錄

有可能使用window.history.lenght 得到歷史的lenght或使用history.go重定向到歷史上一個/下一個URL(N)

是否有任何的手段來得到的網址歷史對象?正如我看到它不可能與歷史對象 ,因爲網址甚至不是隻讀。

你有什麼想法嗎?

+4

第一個問題是爲什麼你需要這樣的事情。 – rahul 2009-08-05 12:17:59

+0

對於網站統計。我使用橫幅廣告網絡,如果有人來自img.doubleclick.com,我想查看該網站的真實網址,它爲我帶來當前訪問者。 – Zelid 2009-08-05 12:45:53

+4

此問題似乎無關緊要,因爲它涉及到雙擊橫幅廣告網絡的支持請求。 – hakre 2013-09-29 08:17:58

回答

12

這是不可能的,也不會在任何主要的瀏覽器中。這將是一個嚴重的隱私和same origin policy違規。

+0

至少讀取當前的同源策略範圍內的(當前會話)歷史記錄會很好;-) – NicBright 2014-10-03 10:07:27

4

通過檢測鏈接的顏色,可以在JavaScript內確定瀏覽器歷史記錄。這隻能通過嘗試不同的網址,我們不能得到每個歷史對象。

<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。

編輯:

雖然這是一個工作方法一次,大多數較新的瀏覽器不會讓你得到的鏈接的計算樣式精確的讀數。我已經注意到這種變化從Firefox 4開始。無論如何,這是一個隱私問題。

+0

這就是黑客使用的跨站點 – Zelid 2011-08-16 11:57:26

+2

我已經在Firefox 6中測試過了。它不起作用。 FF6中所有的URL都是相同的顏色。以上示例適用於FF3.6和FF4.0。 – 2011-09-26 01:42:48

+2

是的,這是從過去。通過CSS鏈接顏色(訪問過的鏈接;被訪問過),瀏覽器供應商已經監督並沒有解決該問題。這*應該*現在是固定的,但請記住,使用互聯網不利於您的隱私和計算機安全。防止此類攻擊(和間諜網站)的一個簡單方法是禁用javascript,由於行業和廣告合作伙伴的要求,Firefox再次因Firefox而變得複雜。 – hakre 2013-09-29 08:57:21

相關問題