Firefox编译简单加载脚本-browser.xul
我试图通过特权chrome在每个dom页面上添加一个脚本标签,到目前为止,我能够获得标签的第一个页面加载,但在那之后,脚本什么也不做,我使用Firefox Nightly 44.0。我做错了什么 以下是我所关注的文件: mozilla central/browser/base/content/browser.xul(第74行)Firefox编译简单加载脚本-browser.xul,firefox,firefox-addon,onload,Firefox,Firefox Addon,Onload,我试图通过特权chrome在每个dom页面上添加一个脚本标签,到目前为止,我能够获得标签的第一个页面加载,但在那之后,脚本什么也不做,我使用Firefox Nightly 44.0。我做错了什么 以下是我所关注的文件: mozilla central/browser/base/content/browser.xul(第74行) chrome://browser/content/yyy/x.js var myExtension = { init: function() {
chrome://browser/content/yyy/x.js
var myExtension = {
init: function() {
// The event can be DOMContentLoaded, pageshow, pagehide, load or unload.
if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false);
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered the event
var win = doc.defaultView; // win is the window for the doc
// test desired conditions and do something
// if (doc.nodeName != "#document") return; // only documents
// if (win != win.top) return; //only top window.
// if (win.frameElement) return; // skip iframes/frames
alert("page is loaded \n" +doc.location.href);
}
}
window.addEventListener("load", function load(event){
window.removeEventListener("load", load, false); //remove listener, no longer needed
myExtension.init();
},false);
mozilla central/browser/base/jar.mn
content/browser/yyy/x.js (content/yyy/x.js)
您需要使用参数为true的
loadFrameScript
来侦听未来的页面。以下是一些例子:
这里记录了这一点:
要阻止它加载到新选项卡中,则必须使用removeDelayedFrameScript
github链接还展示了如何使用插件sdk内容脚本的示例。谢谢!!!例如,我将接受你的回答。。非常感谢。非常感谢。酷@Null:)但是如果你想使用go with content script方法,你可以使用addon sdk,也可以从非sdk使用execute in sandbox:我也会研究一下,示例看起来像我需要的,但我会看看我想出了什么。所以我让浏览器加载,即使没有沙盒(我不知道它是如何工作的),但是我一直在使用附加sdk,但是你是说我可以添加globalMM.loadFrameScript(“chrome://modify-all-pages/content/frame-script.js“,对);到内容脚本?我想我必须将其添加到加载项脚本中?@null如果您使用的是加载项sdk,则不应使用框架脚本和消息管理器发送消息。创建Sdk是为了将这些东西抽象出来。
globalMM.loadFrameScript("chrome://modify-all-pages/content/frame-script.js", true);