上一篇:[Perl]One-Liner - 下一篇:项目经理和技术主管的分工
2008-05
30
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/05/30/socialhistory/以及本声明。
今天delicious上这个名为 SocialHistory 的脚本十分引人注目。 源代码可以在这里下载。 这段js代码的功能就是判断你的用户有没有访问过某个网站。使用方法很简单,例如:
window.onload = function() {
var sl = new SocialHistory();
alert(sl.doesVisit("Del.icio.us"));
}
如果用户曾经使用过del.icio.us,那么该函数就会返回真,否则返回假。
其实原理并不复杂,它利用了链接的 a:visited 伪类的属性。首先在页面上生成一个iframe, 并在这个iframe中设置 a 和 a:visited 为不同的样式。然后将网站的链接插入到 iframe 中。 浏览器就会根据用户的访问历史,为访问过的链接设置 a:visited 的样式。 最后再获得链接的最终样式,如果是 a:visited,就可以认为用户访问过该网站了。 具体的实现方式可以参考源代码。
这个脚本主要用于显示社会性书签的图标,可以恰到好处地显示用户所使用的网站。 但我担心,这样的做法是不是有盗取用户隐私之嫌? 虽然这个方法只能判断用户有无访问特定的网站,并不能无限制地得到所有访问历史。
才一条评论,欢迎发表高见!
添加评论

2008-05-30 23:33
这个东西嘛…
首先是从这里来 http://ha.ckers.org/weird/CSS-history.cgi
想不被探测, http://www.safehistory.com/ & SafeCache
接下来是 http://www.niallkennedy.com/blog/2008/02/browser-history-sniff.html
最后才轮到这个…