Xpoint
   [напомнить пароль]

XPCOM + JavaScript (встраивание объекта в FF3)

Метки: [без меток]
2008-11-13 16:36:20 [обр] Александр[досье]

Создаю новый объект ( newObj ) через createElementNS(). Определяю через window-mediator компоненту XPCOM в переменной domWindow. Далее:

domWindow.getNavToolbox().appendChild( newObj );

При этом прописаны все привилегии:
UniversalXPConnect, UniversalBrowserWrite, UniversalBrowserRead...

Во 2-м FF все корректно добавляется, но в третьем выдает ошибку NS_ERROR_DOM_PROP_ACCESS_DENIED 1010. Причем, удаление собственных объектов FF3, или копирование их-же происходит без проблем.
В чем может быть причина?

Заранее благодарен.

спустя 15 часов [обр] Александр[досье]

В общем, для наглядности, примерно такой код:

const XMLNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

var domWindow = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService();
var newObj = document.createElementNS( XMLNS, 'toolbar' );
var navToolbox = domWindow.getNavToolbox();

navToolbox.appendChild( newObj );

Повторюсь, в FF2 работает корректно, а в FF3 - NS_ERROR_DOM_PROP_ACCESS_DENIED...

спустя 48 минут [обр] Александр[досье]
Немного ошибся, в FF2 ссылка на объект toolbox определяется через domWindow.getElementsByTagName('toolbox').item(0); , а уже в FF3 появилась функция domWindow.getNavToolbox();... но проблема не в этом
спустя 1 час 48 минут [обр] Александр[досье]

Разобрался, следовало писать так: domWindow.document.createElementNS( XMLNS, 'toolbar' );

Тема закрыта.

Powered by POEM™ Engine Copyright © 2002-2005