Аддон Firefox: 'promptService' не работает из собственного примера кода Mozilla - PullRequest
1 голос
/ 28 января 2011

Я создал расширение с помощью Mozilla Addon Builder , которое создает кнопку на панели инструментов.Никаких изменений не было внесено в код, который выполняется в текущей стабильной FF 3.

var mytestextension = {
  onLoad: function() {
    // initialization code
    this.initialized = true;
    this.strings = document.getElementById("mytestextension-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!
    mytestextension.onMenuItemCommand(e);
  }
};

window.addEventListener("load", mytestextension.onLoad, false);

Кнопка панели инструментов появляется, но при щелчке (который я понимаю должен вызвать onToolbarButtonCommand) ничего не происходит.Я немного размышляю об отладке здесь: я впервые попробовал язык, на котором «привет мир» не работал!

1 Ответ

1 голос
/ 29 января 2011
Я думаю, что

this в onLoad на самом деле не будет указывать на ваш объект. Если это немодифицированный код, пожалуйста, сообщите об ошибке (я уже выбрал правильный компонент для вас), и он должен быть быстро исправлен.

...