2013-04-12 2 views
1

Я пытаюсь создать пустую вкладку и вставить в нее файл сценария.Как подключить скрипт на вкладке, созданный gBrowser.addTab()?

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 создал вкладку?

ответ

1

мне нужно сделать что-то похожее на это для существующих вкладок, за исключением - значение вы, возможно, придется настроить его немного и слушать "load" событие для 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'load' (если применимо):

var options={contentScriptFile:...}; 
attachWorker(contentWindow, options); 

Документация для содержания работника:
https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/content/worker.html

Код от attachWorker() является слегка измененной версией Worker() функции из SDK (доступен из Вашего реактивного ранца аддона пакета или mozilla addon-sdk repository):
https://github.com/mozilla/addon-sdk/blob/master/lib/sdk/tabs/worker.js

Смежные вопросы