Страницы: 1
Сделал тестовый JavaScript XPCOM компонент - результат тот же.
Использую следующий код:
const MYCOMPONENT_CONTRACTID = '@mozilla.org/MyComponent;1';
const MYCOMPONENT_CID = Components.ID('{E7759D3B-4C5C-48df-B7D2-6EAC09BB980D}');
const MYCOMPONENT_IID = Components.interfaces.nsIMyComponent;
function nsMyComponent() { }
nsMyComponent.prototype = {
reverseIt: function(s) {
var a = s.split("");
a = a.reverse();
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
.getService(Components.interfaces.nsIWindowWatcher);
var win = ww.openWindow(null, "chrome/content/TestWindow.xul",
"Test", "chrome,resizable,centerscreen,dependent,dialog", null);
promptService.alert( null, "Title", win );
return a
…Здравствуйте.
Столкнулся с такой проблемой - пишу XPCOM-компонент на С++, так вот из под него
нужно иметь возможность открыть XUL-окно.
Использую такой код:
nsresult rv;
nsCOMPtr<nsIWindowWatcher> myDialog( do_GetService( "@mozilla.org/embedcomp/window-watcher;1", &rv ) );
if( NS_FAILED( rv ) )
{
MessageBoxA( 0, "1", "Error", MB_OK );
return NULL;
}
nsCOMPtr<nsIDOMWindow> win;
rv = myDialog->OpenWindow( nsnull, "chrome/content/TestWindow.xul", "OCC", "resizeable,centerscreen", nsnull, getter_AddRefs(win) );
if ( NS_FAILED( rv ) )
MessageBoxA( 0, "2", "Error", MB_OK );
myDialog->SetActiveWindow( win );
Но, к сожалению, никакого окна не отображается (MessageBox-ы с ошибками не выводятся).
TestWindow.xul заведомо рабочий. По документации Mozilla искал, но толком ничего
не нашел.
Может кто-нибудь что-либо посоветовать по этому поводу?
Заранее спасибо.
…Страницы: 1