2010-12-21 37 views
0

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

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

理想的情况下,我希望它这样的表现:

  1. 网页加载。
  2. 网页上的所有锚都被分配属性onmouseover。
  3. 用户指向一个链接。
  4. 事件被触发,链接的URL被提取并显示在警告框中。

回答

1

有几件事情:

  1. 对于插入的浏览器覆盖的脚本,document是浏览器的文件,而不是网页的,所以你做想要content.document
  2. 功能是getElementsByTagName。使用错误控制台 - 它应该告诉你,getElementsByTag不是一个函数。
  3. 您也可以只使用content.document.links
  4. 这样可能比较简单,只是添加事件侦听到整个文档加载时,然后在事件监听器,只是做if (event.target instanceof HTMLAnchorElement)什么的,看它是否是一个链接。
  5. 无论采取哪种方式,您应该在完成后移除事件侦听器(即在页面的unload事件中)。
+0

u意指document.addEventListener(“click”,funtion(e){if(this.target instanceof HTMLAnchorElement){alert(“hello”)}},false); – user375065 2010-12-22 13:15:29

0

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

在功能运行linkTargetFinder.js(),你可以看到如何找到链接:

... allLinks =内容.document.getElementsByTagName( “A”) ...