Mailto-ссылка как пункт меню в меню кнопки панели инструментов возможна?

Я использую API-интерфейс кнопок панели инструментов Эрика Волда вместе с Mozilla Addon-SDK, и мне было интересно, есть ли способ связать пункт меню, чтобы открыть почтовую программу по щелчку.
Для виджета это тривиально, поскольку я могу просто добавить <a href="mailto:xxxxx"></a> в HTML соответствующей панели.
А как насчет кнопки-меню на панели инструментов? Есть ли что-нибудь вроде type: "email", например, которое позволило бы изменить API кнопок панели инструментов?

РЕДАКТИРОВАТЬ:
То, что я уже пробовал безуспешно:
предоставление атрибута href пункта меню (включая класс text-link)
добавление элемента привязки в качестве дочернего узла к пункту меню


person user1521685    schedule 23.05.2013    source источник
comment
Не уверен, что вы имеете в виду под меню нижнего колонтитула. Если вы знаете, как связать кнопку панели инструментов с элементом меню, то: Да, я хочу знать больше ;-}   -  person user1521685    schedule 23.05.2013


Ответы (1)


Вам не нужна ссылка, вы можете просто «запросить» этот URL самостоятельно:

var {ToolbarButton} = require("toolbarbutton");
var {Request} = require("sdk/request");
ToolbarButton({
  ...
  onCommand: function () {
    try {
      Request({url: "mailto:[email protected]"}).get();
    }
    catch (e) {
      // Ignore "no data will be returned" exception
    }
  }
});

Этот запрос будет иметь тот же эффект, что и переход пользователя по ссылке — данные не будут возвращены, но откроется окно почтового приложения.

person Wladimir Palant    schedule 24.05.2013
comment
О, круто! Как-то ускользнуло от моего внимания, что это возможно с помощью API запросов. Все еще немного любопытно, как это сделать в XUL, но я сделаю именно так, как вы предложили :} - person user1521685; 24.05.2013
comment
@ user1521685: В XUL на самом деле нет ссылок, поэтому вам все равно придется справляться с этим самостоятельно. Обычным подходом будет вызов nsIExternalProtocolService.loadURI() напрямую (он вызывается дальше по строке независимо от того, что вы делаете). Это точно что делает привязка text-link . - person Wladimir Palant; 24.05.2013