Ограничить расширение Firefox для конкретного домена - PullRequest
2 голосов
/ 21 сентября 2010

Я хотел бы написать расширение для 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, чтобы увидеть, является ли текущая страница той, которую я хочу, но для этого необходимо, чтобы пользователь щелкнул нужный пункт в контекстном меню.

1 Ответ

3 голосов
/ 23 сентября 2010

Я не совсем понимаю, что у вас есть, потому что оба они выглядят как файлы JS, а не файлы XUL.Но то, что вы, вероятно, хотите сделать, это прослушать событие load, поступающее с загруженных веб-страниц .Затем в загрузчике событий просто посмотрите на каждую загружаемую страницу и посмотрите, идет ли она с определенного домена, который вы хотите.

Отличный (хотя и не всегда простой, как кажется) способ узнать, как сделать что-то в дополнении Firefox, - это найти другое дополнение, которое делает что-то подобное. DOM Inspector и Проверка контекста ваши друзья!Первый такой аддон, который приходит на ум в этом случае, это WikiTrust , так что вы можете попробовать посмотреть на него, чтобы увидеть, вдохновляет ли он вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...