С появлением многопроцессорного Firefox я решил переписать свой аддон с помощью Addon-SDK.Как создать панель инструментов XUL через Javascript?
Мой аддон - это в основном панель инструментов с обширным набором меню.
Addonsdk не предоставляет никакого способа создания меню. So I found this method, с помощью которого я могу добавить их в существующую панель инструментов. Однако я не могу найти способ создания таких меню и добавить их на панель инструментов Addon-SDK. Поэтому я подумал, что просто создаю панель инструментов так же, как я создаю меню.
Итак, я в основном пытаюсь создать панель инструментов XUL с помощью JavaScript (я думаю):
var MyDelegate = {
onTrack: function(window){
//don't add this to other windows, just the browser window
if(window.location != "chrome://browser/content/browser.xul") {
// console.log("=> win location false");
return;
}
var document = window.document; //we need this to attach the XUL elements
var MyBar = window.document.createElement('toolbar');
MyBar.setAttribute('id', 'MyToolbarID');
MyBar.setAttribute('toolbarname', 'MyTitle');
MyBar.setAttribute('class', 'chromeclass-toolbar');
MyBar.setAttribute('mode', 'full');
MyBar.setAttribute('hidden', 'false');
MyBar.setAttribute('insertafter', 'PersonalToolbar');
}
}
let utils = require('sdk/deprecated/window-utils'); // for new style sdk
utils.WindowTracker(spatDelegate);
Что я должен сделать, чтобы эта панель инструментов на самом деле получить построен и отображения в браузере?
[обновление]
Причина я не использую панель инструментов SDK, потому что панель инструментов создается асинхронной и не существует во времени, чтобы получить ручку на это HTML идентификатор. Даже если я использую html-идентификатор с помощью панели инструментов браузера, он не добавляется в окно.
О проблеме асинхронным, почему вы не можете отложить выполнение до тех пор, пока не нагружает? –
Могу ли я это сделать? (вы спрашиваете, почему я не могу отложить выполнение - я не могу, потому что я не знал, что смогу :)) – bgmCoder
Обычно асинхронные функции имеют обратные вызовы, которые позволяют выполнять функцию при загрузке. Я не знаком с Firefox SDK, но я уверен, что это возможно. –