[英]firefox extension page load not firing
我正在嘗試編寫一個非常簡單的firefox擴展名,該擴展名僅在窗口加載時運行一些基本的javascript。 但是該事件永遠不會觸發。 我已經從幾個不同的職位上看到並嘗試過一些東西,但沒有一個適合我。
function startup() {
alert("Hi");
}
window.addEventListener("load", startup, false);
document.body.style.border = "5px solid red";
我也嘗試過這個:
function startup() {
mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow);
mainWindow.getBrowser().addEventListener("load", listener, false);
Sidebar is loaded and mainwindow is ready
}
var listener = function(e){
alert("Hai");
//To remove event listener
//mainWindow.getBrowser().removeEventListener("load",listener, false);
}
window.addEventListener("load", startup, false);
document.body.style.border = "5px solid red";
在這兩種情況下,所有頁面上都有紅色邊框,但警報從不出現。調試窗口中也沒有錯誤。 任何幫助表示贊賞。 謝謝!
您的代碼應該可以工作。
看一下borderify示例WebExtension。 如果這甚至是您正在使用的示例,我也不會感到驚訝,因為它是相同的document.body.style.border = "5px solid red"
分配。
在修改borderify.js
使其包括您的第一個啟動功能之后,當我打開https://www.mozilla.org/ (在Firefox 60上進行測試)時,我得到警告(和紅色邊框):
function startup() {
alert("Hi");
}
window.addEventListener("load", startup, false);
document.body.style.border = "5px solid red";
如果仍然看不到警報,則可以對其進行調試。 該代碼將在內容腳本中執行,因此您必須使用內容腳本工具箱:
about:debugging
,啟用附加調試 borderify.js
現在,您可以設置斷點,並且如果有任何異常,您將在控制台中看到它們。
希望可以幫助您縮小bug。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.