使用javascript获取用户在IE9中访问量最大的网站?

时间:2012-04-08 22:47:12

标签: javascript internet-explorer internet-explorer-9 browser-history

我正在创建一个将在本地运行的html文件以防万一。它只需要在IE9上运行,但如果在其他浏览器中运行它会很好。我需要获取用户访问量最大的网站,以便我可以将它们显示为IE9中的默认新标签页。如果我能得到最近的历史也会很好。这些是可能的还是我必须使用插件?

4 个答案:

答案 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中的“统计信息”。

这种方法的缺点是:

  1. 如果用户更改了浏览器本身中已访问和未访问链接的默认颜色。你很难对颜色进行编码。如果该用户发生变化,则无法获得任何良好的统计数据。

  2. 您仅限于您的链接列表。虽然你可以添加。

  3. 耗尽了DOM。假设您要检查1000个网址,则必须将1000个<a>标记附加到空白<iframe>,然后让JavaScript浏览所有这些标记。

  4. 确切的链接。如果您在yahoo.com/news/etc....中阅读新闻,则与yahoo.com不同,因此不会被提取。理想情况下,您只需列出顶级域名。

  5. 您没有“访问次数”。您只知道访问过哪些域,但不知道访问频率的频率。但是,您可以执行的操作是在“新标签页”中,您可以在Cookie中存储用户点击的链接。例如,如果您在“新标签页”中有google.com,如果用户点击它,则会在Cookie中增加Google的计数,然后转到Google。下次加载“新标签页”时,请阅读该Cookie并继续计数。

答案 2 :(得分:1)

您正在寻找的功能不存在,并且将是一个危险的功能,永远不应该成为任何浏览器的一部分。如果您能够阅读用户的近期历史记录,那么任何其他网站也可以这样做。出于隐私原因,您的历史记录对您访问的网站是隐藏的。

答案 3 :(得分:0)

如果遇到任何人,我可以通过使用JS History Objects来实现提问者所寻求的目标。它提供了一系列用户历史记录,计数排序可以返回列出的网站频率,为您提供用户访问量最大的网站。