我試圖開發一個ff插件,它允許用戶右鍵單擊表單元素並執行與其關聯的任務。爲表單輸入顯示強制上下文菜單
不幸的是,有人認爲上下文菜單不應該出現在ff中的表單輸入,儘管長時間的討論https://bugzilla.mozilla.org/show_bug.cgi?id=433168,他們仍然不出現複選框,收音機或選擇。
我的確找到這個:https://developer.mozilla.org/en-US/docs/Offering_a_context_menu_for_form_controls但我想不出如何翻譯代碼以使用新的附加SDK。 我試圖將JavaScript顯示爲內容腳本並通過觀察者服務,但無濟於事。
我也無法找到推薦的擴展https://addons.mozilla.org/en-US/firefox/addon/form-control-context-menu/的來源,它認爲它是'專門爲演示如何做到這一點而創建的',這非常令人沮喪。
這似乎是非常基本的插件功能,任何幫助或鏈接到更簡單的文檔將不勝感激。
**更新**
我添加一個文件下面的代碼,從主要要求,似乎這樣的伎倆。
var {WindowTracker} = require("window-utils");
var tracker = WindowTracker({
onTrack: function(window){
if (window.location.href == "chrome://browser/content/browser.xul") {
// This is a browser window, replace
// window.nsContextMenu.prototype.setTarget function
window.setTargetOriginal = window.nsContextMenu.prototype.setTarget;
window.nsContextMenu.prototype.setTarget = function(aNode, aRangeParent, aRangeOffset) {
window.setTargetOriginal.apply(this, arguments);
this.shouldDisplay = true;
};
};
}
, onUntrack: function(window) {
if (window.location.href == "chrome://browser/content/browser.xul") {
// In case we were called because the extension is uninstalled - restore
// original window.nsContextMenu.prototype.setTarget function
window.nsContextMenu.prototype.setTarget = window.setTargetOriginal;
};
}
});
不幸的是,這仍然沒有提供禁用輸入的上下文菜單,但這不是一個顯示屏。
非常感謝
您提到的擴展程序的來源可以從網上查看。在擴展的頁面上,向下滾動到「版本信息」部分,展開它,然後單擊_查看擴展的Source_鏈接。然後您可以瀏覽擴展的源代碼。 –
謝謝你。不幸的是,將它翻譯成新的SDK代碼就是我迷路了! – Arth