window.onload = function() { var sl = new SocialHistory(); alert(sl.doesVisit("www.Vevb.com")); } 如果用户曾经使用过www.Vevb.com,那么该函数就会返回真,否则返回假。 其实原理并不复杂,它利用了链接的 a:visited 伪类的属性。首先在页面上生成一个iframe,并在这个iframe中设置 a 和 a:visited 为不同的样式。然后将网站的链接插入到 iframe 中。浏览器就会根据用户的访问历史,为访问过的链接设置 a:visited 的样式。最后再获得链接的最终样式,如果是 a:visited,就可以认为用户访问过该网站了。具体的实现方式可以参考源代码。 这个脚本主要用于显示社会性书签的图标,可以恰到好处地显示用户所使用的网站。但我担心,这样的做法是不是有盗取用户隐私之嫌?虽然这个方法只能判断用户有无访问特定的网站,并不能无限制地得到所有访问历史。 /* |
* Social Limit - Only the social you care about. |
* |
* Enables your site to know which social bookmarking badges to display to your |
* visitors. It tells you all social sites the user has gone to, or you can |
* query for a specific one. |
* |
* For example: |
* |
* var sl = SocialHistory(); |
* alert( sl.doesVisit("Digg") ); // Returns true/false, -1 if unknown. |
* var listOfVisitedSites = sl.visitedSites(); |
* var checkedSites = sl.checkedSites(); |
* |
* If you want to add more sites to check, you can pass that in as a dictionary |
* to History: |
* |
* var more = { "Humanized": "http://humanized.com", |
* "Azarask.in": ["http://azarask.in", "http://azarask.in/blog"] |
* }; |
* var sl = SocialHistory(more); |
* alert( sl.doesVisit("Humanized") ); |
* |
* For a list of built-in sites, see the sites variable below. |
* |
* Copyright (c) 2008 Aza Raskin (http://azarask.in/blog) |
* |
* Permission is hereby granted, free of charge, to any person obtaining a copy 学习交流
热门图片
猜你喜欢的新闻
新闻热点 2024-04-27 13:35:46
2024-04-27 13:33:47
2024-04-24 22:53:44
2024-04-23 19:32:50
2024-04-23 19:25:50
2024-04-23 19:13:19
疑难解答 图片精选 |