Я хотел бы написать расширение для Firefox. Это расширение не является общим расширением, но работает специально для домена, где мне нужно выделить определенные компоненты HTML.
Как мне это сделать? Я просто хочу, чтобы js загружался, когда пользователь просматривает определенный домен.
Мой текущий overaly.js
в основном пуст (генерируется мастером расширений):
var myextension = {
onLoad: function() {
// initialization code
this.initialized = true;
this.strings = document.getElementById("myextension-strings");
},
onMenuItemCommand: function(e) {
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
promptService.alert(window, this.strings.getString("helloMessageTitle"),
this.strings.getString("helloMessage"));
},
onToolbarButtonCommand: function(e) {
// just reuse the function above. you can change this, obviously!
myextension.onMenuItemCommand(e);
}
};
window.addEventListener("load", myextension.onLoad, false);
А мой ff-overlay.xul
это:
myextension.onFirefoxLoad = function(event) {
document.getElementById("contentAreaContextMenu")
.addEventListener("popupshowing", function (e){ myextension.showFirefoxContextMenu(e); }, false);
};
myextension.showFirefoxContextMenu = function(event) {
// show or hide the menuitem based on what the context menu is on
document.getElementById("context-myextension").hidden = gContextMenu.onImage;
};
window.addEventListener("load", myextension.onFirefoxLoad, false);
Я думал пойти неандерталец и выполнить проверку внутри myextension.onFirefoxLoad
, чтобы увидеть, является ли текущая страница той, которую я хочу, но для этого необходимо, чтобы пользователь щелкнул нужный пункт в контекстном меню.