這個問題已被問了很多次,但大多數問題都是舊的。使用Javascript獲取瀏覽器歷史記錄?
我嘗試了好幾種不同的技術:
a:visited {} /* read computed style - always returns :link color*/
a:visited {} /* set height and measure that, turns out you can only set various colors */
a:link:after { content:"abc"} /* tried various styles */
/* the same restrictions apply when dealing with nested/child elements */
我已經試過採取的div「截圖」,並把它變成畫布,以獲得像素顏色的方式。
我已經考慮將一個半透明div懸停在錨上,並以某種方式使用它來測量顏色。
我試着從你想要嗅探的網站加載一個樣式表,並計時需要多長時間(在第一/第二/ ...負載上),但結果很奇怪(有時第一次加載速度更快實際上通過網絡比本地緩存更快)。
<script>
var t = new Date().getTime();
</script>
<link id="test" rel="stylesheet" type="text/css" href="http://l.yimg.com/zz/combo?nn/lib/metro/g/breakingnews/breakingnews_0.0.49.css" />
<script>
document.getElementById("test").onload = function() { var ft = ((new Date().getTime()) - t) + "ms";
alert(ft);
};
</script>
Mozilla概述了這些安全限制的原因和方法here。
歷史嗅探完全不可能,如果有的話,是否有任何標準/接受/用戶友好的做法?
一個用戶友好的瀏覽器隱私漏洞利用? – 2013-04-11 22:02:34
用戶友好的解決方案必須是合法的。但是利用解決方案可能是任何東西。 – user1873073 2013-04-11 22:45:06
難道你不能(1)用ex id =「mytest」創建一個隱藏的測試div,並把它放到你的html DOM中,(2)創建一個新的css「#mytest a:visited {...}」,( 3)創建一個新的「a」DOM元素,(4)將它的href設置爲你想要嗅探的站點的URL,(5)將它附加到div,(6)然後測試它的樣式以知道它是否已經是否參觀過?我在這裏找到了這種方式:http://stackoverflow.com/questions/1584850/is-it-possible-to-get-anchor-visited-state-from-javascript – Ricola3D 2013-04-19 15:08:11