Firefox 如何在gBrowser.addTab()创建的选项卡中附加脚本?

Firefox 如何在gBrowser.addTab()创建的选项卡中附加脚本?,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我正在尝试创建一个空选项卡,并向其中注入一个脚本文件 var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator); var browserEnumerator = wm.getEnumerator("navigator:browser"); var tabbrowser = browserEnumerator.getNext().gBrowser; var newTab = tab

我正在尝试创建一个空选项卡,并向其中注入一个脚本文件

var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
var browserEnumerator = wm.getEnumerator("navigator:browser");
var tabbrowser = browserEnumerator.getNext().gBrowser;
var newTab = tabbrowser.addTab("");
使用pageMod,我可以将文件附加到

contentScriptFile: [data.url("jquery-1.9.1.min.js")],

如何为gBrowser创建的选项卡附加脚本?

如果您已经在使用附加SDK,则可以使用选项卡模块:

var tabs = require("sdk/tabs");

tabs.on('ready', function(tab) {
  tab.attach({
      contentScript:
        'document.body.style.border = "5px solid red";'
  });
});

如果您已经在使用附加SDK,则可以使用选项卡模块:

var tabs = require("sdk/tabs");

tabs.on('ready', function(tab) {
  tab.attach({
      contentScript:
        'document.body.style.border = "5px solid red";'
  });
});

除了现有的选项卡之外,我还需要做一些类似的事情——这意味着您可能需要对其进行一些调整,并为添加的选项卡的
contentWindow
收听
“加载”
事件:

设置attachWorker功能:

let contentWorker=require("sdk/content/worker");

function attachWorker(contentWindow,options){    
    options.window = contentWindow;
    let worker = contentWorker.Worker(options);
    worker.once("detach", function detach() {
        worker.destroy();
    });
    return worker;
}
当选项卡可用时:

var browser=gBrowser.getBrowserForTab(tab);
var contentWindow=browser.contentWindow; 
加载
contentWindow
时,请收听
contentWindow
(如果适用):

内容工作者的文档:

来自attachWorker()的代码是sdk中Worker()函数的一个稍加修改的版本(可从jetpack加载项包中获得或获得):

除了现有的选项卡之外,我还需要做一些类似的事情——这意味着您可能需要对其进行一些调整,并为添加的选项卡的
contentWindow
收听
“加载”
事件:

设置attachWorker功能:

let contentWorker=require("sdk/content/worker");

function attachWorker(contentWindow,options){    
    options.window = contentWindow;
    let worker = contentWorker.Worker(options);
    worker.once("detach", function detach() {
        worker.destroy();
    });
    return worker;
}
当选项卡可用时:

var browser=gBrowser.getBrowserForTab(tab);
var contentWindow=browser.contentWindow; 
加载
contentWindow
时,请收听
contentWindow
(如果适用):

内容工作者的文档:

来自attachWorker()的代码是sdk中Worker()函数的一个稍加修改的版本(可从jetpack加载项包中获得或获得):