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



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

您可以使用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 限制仍然存在。

虽然你不能得到"访问量最大的",但你可以得到那些被访问过的。

该过程是您需要准备一长串域。然后在您的页面中,加载一个 iframe,该 iframe 将这些链接放在 DOM 上。需要 iframe,以便您可以在没有任何样式的情况下加载页面,远离主页。这样我们就可以看到我们将使用的默认链接颜色。

现在你在iframe中有一个空白文档,里面有一堆链接,下一步是什么?你让JavaScript遍历链接,检查它们是蓝色还是紫色,抓住我的漂移?这意味着如果该链接的颜色为蓝色,则尚未访问过。如果它是紫色的,那么它就会被访问。由于您的 iframe 和父页面属于同一域,因此父页面可以在 iframe 中获取"统计信息"。

这种方法的缺点是:

  1. 如果用户在浏览器本身中更改已访问和未访问链接的默认颜色。您正在对颜色进行硬编码。如果该用户的情况发生变化,您将无法获得任何良好的统计信息。

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

  3. 假设你有 1000 个 url 要检查,你必须将 1000 个 <a> 标签附加到空白<iframe>,让 JavaScript 遍历所有这些。

  4. 确切的链接。如果你用yahoo.com/news/etc....阅读新闻,它与yahoo.com不一样,因此不会被拾取。理想情况下,您只需要列出顶级域。

  5. 您不会获得"访问次数"。您只知道访问了哪些域,但不知道访问的频率。但是,您可以做的是在"新标签页"中,您可以在cookie中存储用户单击的链接。例如,如果您的"新标签页"中有google.com,如果用户点击它,请在 cookie 中增加谷歌的计数,然后转到谷歌。下次加载"新标签页"时,请阅读该 cookie 并继续计数。

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

如果有人遇到这种情况,我能够通过使用JS历史对象来实现提问者正在寻找的内容。它给出了一个用户历史数组,计数排序可以返回网站列出的频率,为您提供用户访问量最大的网站。

最新更新