2013-03-30 4 views
1

Вот что я хочу сделать:Показать панель закрепленную на toolbarbutton Erik-Волд в, программно

var mainPanel = require("panel").Panel({ 
    width: '200', 
    height: '500', 
    contentURL: gatewayURL, 
    contentScriptWhen: "start", 
    contentScriptFile: [ 
     self.data.url("messagelistener.js") 
    ] 
}); 

var button = toolbar.ToolbarButton({ 
    'id': 'com.user043.myOneButton', 
    'image': require("self").data.url("image-24.ico"), 
    'label': "Test", 
    'panel': mainPanel 
}); 

tabs.on('ready', function(tab) { 
    if(tab.url==="http://www.google.com") { 
     mainPanel.show(); //This opens panel in centre. I want the panel to be anchored to the button it is associated to(just like it appears when I click on toolbarbutton). How do I get the DOM of the button created by ToolbarButton API? 
    } 
} 

Я использую Erik-Волд в toolbarbutton API: https://github.com/voldsoftware/toolbarbutton-jplib. Как получить DOM кнопки, чтобы я мог делать что-то вроде mainPanel.show(tbb); где tbb = DOM кнопки? Пожалуйста помоги!

+0

Я получил DOM для кнопки из хрома: //browser/content/browser.xul с помощью окна-Utils модуль. Благодаря! – user043

ответ

0
panel.show(require('sdk/window/utils').getMostRecentBrowserWindow().document.getElementById('com.user043.myOneButton')) 
+0

жаль, что это не так просто. – erikvold

+0

Спасибо, это работает для меня .. – user043

0
var mainPanel = require("panel").Panel({ 
    width: '200', 
    height: '500', 
    contentURL: gatewayURL, 
    contentScriptWhen: "start", 
    contentScriptFile: [ 
     self.data.url("messagelistener.js") 
    ] 
}); 


var button = toolbar.ToolbarButton({ 
    'id': 'com.user043.myOneButton', 
    'image': require("self").data.url("image-24.ico"), 
    'label': "Test", 
    onClick: function(view) { 
      view.panel = mainPanel; 

     } 
}); 

Instead of using mainPanel.show(), use view.panel = mainPanel;. It will solve the problem bcz I did the same and it works for me. 
Смежные вопросы