2014-10-31 2 views

ответ

3

принять зарубки ответить, но прочитать:

Вот еще один способ для доступа к nsIPromptService. И проверить эту страницу для более предупреждений:

var {Cu, Ci} = require('chrome'); 
Cu.import('resource://gre/modules/Services.jsm'); 
var doit = Services.prompt.confirm(null, 'title', 'message'); 
if (doit) { 
//he clicked yes 
} 

вместо нулевой вы можете передать в объект окна, как Services.wm.getMostRecentWindow(null) и становится модальным на этом окне

преимущество таким образом он использует services.jsm так что вы arent loading nsipromptservice, вы просто получаете указатель на него, что является предпочтительным способом

+1

Это выглядит как лучшее решение для меня. –

1

Я нашел nsIPromptService, который делает именно то, что я хочу:

var chrome = require('chrome'); 
var prompts = chrome.Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(chrome.Ci.nsIPromptService); 
var remove = prompts.confirm(null, 'title', 'message'); 
+0

Является ли 'chrome' глобальным, доступным для всех аддонов sdk? Или он должен быть определен? – Noitidart

+1

Нет, я просто не использовал назначение деструктурирования. Я добавил импорт для полноты. –

+0

О, круто, я не мог реструктурировать 'хром'! Thx для обновления – Noitidart