簡體   English   中英

Firefox 3 Extension JavaScript Duplicated Event Listener on Load

[英]Firefox 3 Extension JavaScript Duplicated Event Listener on Load

我正在修復一個為 Firefox 2 編寫的擴展程序,以便與 Firefox 3 一起使用。
其中一項更改是使用:

window.getBrowser().addEventListener("load", checkURL, true);

而不是僅僅通過窗口。

唯一的問題是load事件似乎在每次頁面加載時發生不止一次。 我也試過聽DOMContentLoaded但有類似的結果。

有沒有辦法確保每個頁面加載只執行一次腳本? 如果重要的話,我加載的頁面是來自https://forums.somethingawful.com 的論壇頁面。

嗯,事實證明,一方面,加載事件可以通過加載像 favicon 這樣的圖像來觸發。 因此,必須確保目標確實是文檔:

aEvent.originalTarget.nodeName == "#document"

可以在片段頁面上獲得更多信息: https : //developer.mozilla.org/En/Code_snippets/On_page_load

嘗試:

window.getBrowser().addProgressListener(
  checkURL,
  Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT
);

並且 checkLink 需要是具有此簽名的 onStateChange 函數的對象:

onStateChange: function(aProgress, request, stateFlags, status);

查看關於nsiWebProgress的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM