我正在创建一个将在本地运行的html文件以防万一。它只需要在IE9上运行,但如果在其他浏览器中运行它会很好。我需要获取用户访问量最大的网站,以便我可以将它们显示为IE9中的默认新标签页。如果我能得到最近的历史也会很好。这些是可能的还是我必须使用插件?
答案 0 :(得分:3)
您可以使用javascript获取一些历史信息,但这基本上仅限于网站是否已访问过,并且不提供日期或频率。在一些现代浏览器中它也被阻止了。更多信息:
http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/
http://blogs.msdn.com/b/ieinternals/archive/2009/06/17/csshistoryprobing.aspx
即使是本地html文件也不会提供其他信息,本地文件仍保留javascript沙箱和api限制。
答案 1 :(得分:2)
虽然你无法获得“访问量最大”,但你可以获得那些已经访问过的人。
程序是您需要准备一长串域名。然后在您的页面中,加载一个将这些链接放在DOM上的iframe。需要iframe,以便您可以在没有任何样式的情况下加载页面,远离主页。这样我们就可以看到我们将使用的默认链接颜色。
现在你在iframe中有一个带有一堆链接的空白文档,下一步是什么?你让JavaScript迭代链接,检查它们是蓝色还是紫色,抓住我的漂移?这意味着如果该链接的颜色为蓝色,则表示尚未访问该颜色。如果是紫色,则访问它。由于您的iframe和父页面属于同一个域,因此父级可以获取iframe中的“统计信息”。
这种方法的缺点是:
如果用户更改了浏览器本身中已访问和未访问链接的默认颜色。你很难对颜色进行编码。如果该用户发生变化,则无法获得任何良好的统计数据。
您仅限于您的链接列表。虽然你可以添加。
耗尽了DOM。假设您要检查1000个网址,则必须将1000个<a>
标记附加到空白<iframe>
,然后让JavaScript浏览所有这些标记。
确切的链接。如果您在yahoo.com/news/etc....
中阅读新闻,则与yahoo.com
不同,因此不会被提取。理想情况下,您只需列出顶级域名。
您没有“访问次数”。您只知道访问过哪些域,但不知道访问频率的频率。但是,您可以执行的操作是在“新标签页”中,您可以在Cookie中存储用户点击的链接。例如,如果您在“新标签页”中有google.com
,如果用户点击它,则会在Cookie中增加Google的计数,然后转到Google。下次加载“新标签页”时,请阅读该Cookie并继续计数。
答案 2 :(得分:1)
您正在寻找的功能不存在,并且将是一个危险的功能,永远不应该成为任何浏览器的一部分。如果您能够阅读用户的近期历史记录,那么任何其他网站也可以这样做。出于隐私原因,您的历史记录对您访问的网站是隐藏的。
答案 3 :(得分:0)
如果遇到任何人,我可以通过使用JS History Objects来实现提问者所寻求的目标。它提供了一系列用户历史记录,计数排序可以返回列出的网站频率,为您提供用户访问量最大的网站。