2011-08-26 84 views
-2

我正在开发一个Firefox插件。我想显示一个工具提示,其中包含用户在鼠标悬停链接时目标页面的预览。预取链接的内容

这很简单,但是有时间要求。此过程应在1秒前完成(用户鼠标悬停后)

任何想法从哪里开始?

+0

只需创建一个很小的iframe中,并给它链接href作为其源? –

+1

如果页面下载时间超过了1秒,您会如何在1秒后完成? –

回答

0

您应该创建一个加载项,用于在页面加载后(即收到DOMContentLoaded事件时)扫描内容文档DOM的锚标记。旧式的做法是使用XUL覆盖。推测可以使用内容脚本使用Addon SDK完成同样的事情。

然后,您必须将每个链接加载到隐藏的iframe中(例如,将高度设置为零)并创建屏幕截图,如下所述:https://developer.mozilla.org/en/drawing_graphics_with_canvas#Rendering_Web_Content_Into_A_Canvas。请注意,Mozilla开发者网站现在出现故障,所以代码示例没有正确显示(至少在我服务的镜像上)。我认为这个问题会很快得到解决,因为这是一个严重的问题。按照弗拉基米尔的说法,加载每个链接页面并制作屏幕截图可能需要相当长的时间,所以如果用户将鼠标悬停在链接之前,那么我会a)显示throbber和“正在加载...”文本,而不是屏幕截图和b)优先加载该链接,以便截图尽快显示。

0

有了Firefox,它非常简单。只需使用以下元素,浏览器将预加载您的内容。内容预装在后台,一旦整个当前页面加载。

<link rel="prefetch" href="/images/nextimage.jpg" /> 

欲了解更多信息,请参阅this