我正在尝试编写一个非常简单的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";
在这两种情况下,所有页面上都有红色边框,但警报从未出现。调试窗口中也没有错误。任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
您的代码应该有效。
查看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
现在您可以设置断点,如果有任何异常,您将在控制台中看到它们。
希望能帮助您缩小错误范围。