Firefox扩展链接提取器

时间:2010-12-21 16:21:24

标签: javascript-events firefox-addon

我想在firefox中创建一个扩展,它从用户在链接上移动鼠标中提取网页上嵌入的链接。这与浏览器底部状态栏上的链接目标显示非常相似。

我遇到的问题是访问已加载网页的文档对象。我试过document.getElementsByTag("a")它不起作用。我试过content.document.getElementByTag("a")它不起作用。

理想情况下,我希望它的行为如下:

  1. 网页已加载。
  2. 网页上的所有锚点都分配了属性onmouseover。
  3. 用户指向链接。
  4. 触发事件并提取链接的网址并显示在提醒框中。

2 个答案:

答案 0 :(得分:1)

一些事情:

  1. 对于插入浏览器叠加层的脚本,document是浏览器的文档,而不是网页的文档,因此您需要content.document
  2. 功能为getElementsByTagName。使用错误控制台 - 它应该告诉您getElementsByTag不是函数。
  3. 您也可以使用content.document.links
  4. 在加载时向整个文档添加一个事件监听器可能更简单,然后在事件监听器中,只需执行if (event.target instanceof HTMLAnchorElement)或其他操作即可查看它是否为链接。
  5. 无论你采用哪种方式,你都应该在完成它们时删除事件监听器(即在页面的unload事件中)。

答案 1 :(得分:0)

阅读此tutorial。 不要忘记在install.rdf中更改maxVersion(在LinkTargetFinder.xpi中)

在函数run()的linkTargetFinder.js中,您可以看到如何查找链接:

... allLinks = content.document.getElementsByTagName(“a”) ...