2010-12-21 38 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」) ...