我正在尝试创建空标签并将脚本文件注入其中。
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创建的标签附加脚本?
答案 0 :(得分:1)
除了现有标签之外,我需要做类似的事情 - 这意味着您可能需要稍微调整一下并听取添加标签的"load"
的{{1}}事件:
设置attachWorker功能:
contentWindow
当标签可用时:
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
(如果适用?):
'load'
内容工作者的文档:
https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/content/worker.html
来自var options={contentScriptFile:...};
attachWorker(contentWindow, options);
的代码是来自sdk的attachWorker()
函数的略微更改版本(可从您的jetpack插件包或mozilla addon-sdk repository中获得):
https://github.com/mozilla/addon-sdk/blob/master/lib/sdk/tabs/worker.js
答案 1 :(得分:0)
如果您已经使用了Add-on SDK,则可以使用tabs模块:
var tabs = require("sdk/tabs");
tabs.on('ready', function(tab) {
tab.attach({
contentScript:
'document.body.style.border = "5px solid red";'
});
});