我使用https://github.com/erikvold/toolbarbutton-jplib/包來將addon-sdk插件中的工具欄按鈕添加到Firefox導航欄中。是否可以添加一個下拉菜單到這個按鈕(據我所知沒有簡單的方法)?如何添加一個下拉菜單到Firefox插件SD卡驅動的插件工具欄按鈕?
3
A
回答
4
這就是我的做法;希望對你有效。
var winUtils = require("window-utils");
var delegate = {
onTrack: function(window) {
if(window.location != "chrome://browser/content/browser.xul") {
// console.log("=> win location false");
return;
}
console.log("window tracked");
var document = window.document;
var navBar = document.getElementById('nav-bar');
var btn = document.createElement('toolbarbutton');
btn.setAttribute('id', 'button');
btn.setAttribute('type', 'menu-button');
btn.setAttribute('class', 'toolbarbutton-1');
btn.setAttribute('image', 'http://www.facebook.com/favicon.ico');
btn.addEventListener('command', function() {
console.log("this=" + this.id);
// your callback code here
}
, false);
var menupopup = document.createElement('menupopup');
menupopup.setAttribute('id', 'menupopup');
menupopup.addEventListener('command', function(event) {
// TODO your callback
}
, false);
//menu items
var menuitem1 = document.createElement('menuitem');
menuitem1.setAttribute('id', 'menuitem1');
menuitem1.setAttribute('label', 'Menu item1');
menuitem1.setAttribute('class', 'menuitem-iconic');
menuitem1.addEventListener('command', function(event) {
// CODE
}
, false);
}
winUtils.WindowTracker(delegate);
4
此代碼需要幾行,以實際工作:
var delegate = {
onTrack: function(window) {
if(window.location != "chrome://browser/content/browser.xul") {
// console.log("=> win location false");
return;
}
var document = window.document;
var navBar = document.getElementById('nav-bar');
var btn = document.createElement('toolbarbutton');
btn.setAttribute('id', 'button');
btn.setAttribute('type', 'menu-button');
btn.setAttribute('class', 'toolbarbutton-1');
btn.setAttribute('image', 'http://www.facebook.com/favicon.ico');
btn.addEventListener('command', function() {
console.log("this=" + this.id);
// your callback code here
}
, false);
var menupopup = document.createElement('menupopup');
menupopup.setAttribute('id', 'menupopup');
menupopup.addEventListener('command', function(event) {
// TODO your callback
}
, false);
//menu items
var menuitem1 = document.createElement('menuitem');
menuitem1.setAttribute('id', 'menuitem1');
menuitem1.setAttribute('label', 'Menu item1');
menuitem1.setAttribute('class', 'menuitem-iconic');
menuitem1.addEventListener('command', function(event) {
// CODE
}
, false);
menupopup.appendChild(menuitem1);
btn.appendChild(menupopup);
navBar.appendChild(btn);
console.log("window tracked");
}
};
//let utils = require('api-utils/window-utils');
let utils = require('sdk/deprecated/window-utils'); // for new style sdk
utils.WindowTracker(delegate);
相關問題
- 1. 添加工具欄按鈕插件
- 2. Firefox Addon SDK:如何添加導航工具欄按鈕和下拉菜單
- 3. Mail.app插件 - 一個工具欄按鈕
- 4. 如何添加一個下拉菜單/按鈕到ckeditor插入內容時選擇一個下拉菜單
- 5. 如何將工具欄按鈕添加到自定義tinymce下拉菜單中?
- 6. FireFox插件,菜單按鈕事件
- 7. 如何添加一個按鈕,工具欄和菜單
- 8. 如何添加一個下拉菜單到我的菜單欄
- 9. 添加菜單按鈕Eclipse插件
- 10. 在Firefox中添加工具欄按鈕和菜單項
- 11. 如何將圖標添加到Excel菜單/工具欄按鈕
- 12. 如何寫一個按鈕Firefox插件
- 13. 使用.ico作爲Firefox插件的工具欄按鈕
- 14. Jenkins插件下拉菜單
- 15. TinyMCE的4插件菜單下拉菜單欄
- 16. 如何在下拉菜單中插入滾動按鈕html html
- 17. 如何將工具欄圖標添加到火狐Firefox插件SDK
- 18. 從啓動菜單/工具欄按鈕
- 19. 的Outlook插件自定義按鈕,在下拉添加下來
- 20. 如何將徽標,按鈕圖像和按鈕菜單添加到Firefox工具欄
- 21. 將一個下拉菜單按鈕添加到CMFCToolbar,看不到菜單
- 22. 如何將一個按鈕添加到Eclipse Project Explorer工具欄?
- 23. 如何將插件按鈕添加到編輯器編輯器工具欄中默認按鈕的左側?
- 24. JavaScript庫/插件顯示按鈕/下拉菜單與複選框?
- 25. 如何將上下文菜單項添加到工具欄?
- 26. 如何添加一個按鈕到角2的ng2-tag-input下拉菜單?
- 27. Firefox添加按鈕到現有的工具欄
- 28. WPF工具欄中的下拉菜單
- 29. 一個顯示帶添加按鈕結果的下拉菜單
- 30. Python tkinter:添加按鈕到菜單欄
感謝。我無法找到可以設置按鈕屬性的文檔以及影響。任何想法,我可能會找到它? – willlma
我們所做的只是一些喜歡我們操縱Firefox的DOM的東西,並且您應該閱讀關於XUL的信息,可以在這裏找到它https://developer.mozilla.org/zh-CN/docs/XUL 有時我必須通過Firebug檢查Firefox才能找出元素屬性,這裏有一些關於Firefox XUL的參考 http://kb.mozillazine.org/Dev_:_Firefox_Chrome_URLs – simpletron
我還有一個關於構建工具欄的相關問題:http:// stackoverflow。 com/questions/34487459/how-to-create-xul-toolbar-via-javascript – bgmCoder