Булат в рубрику JavaScript

Вопрос: Работа с расширениями Firefox

Здравствуйте!

Как во внутренних js-файлах расширений Firefox (находятся в папках C: \ Documents and Settings \ ... \ Application Data \ Mozilla \ Firefox \ Profiles \ .... default \ extensions \ ...... \ content \) достать объект window (основное открытое окно, либо активная вкладка) ?...

В частности, интересует как это сделать, если используетя XPCNativeWrapper. Например в GreaseMonkey:

C: \ Documents and Settings \ ... \ Application Data \ Mozilla \ Firefox \ Profiles \ .... default \ extensions \ (e4a8a97b-f2ed-450b-b12d-ee082ba24781) \ content \ scriptdownloader.js

Любые попытки всегда выдают объекты ChromeWindow, либо XUL, либо иные... что с ними делать, с чем едят?

Буду рад любым ответам и просто соображениям на тему.

Попробовал
var appcontent = document.getElementById("appcontent");
в scriptdownloader.js, работает, но выдает объект типа [object XULElement].
А мне нужен именно объект [object Window] - то есть само окно.
(Либо объект [xpconnect wrapped nsISupports], чтобы потом из него достать [object Window] путем .wrappedJSObject.

Может есть способы достать из [object XULElement], [xpconnect wrapped gmIBrowserWindow], ChromeWindow, но я их к сожалению не знаю.


Если быть точнее, мне надо запустить функцию, которая требует два аргумента:
domContentLoaded: function(wrappedContentWin, chromeWin) {
var unsafeWin = wrappedContentWin.wrappedJSObject;
var unsafeLoc = new XPCNativeWrapper(unsafeWin, "location").location;
var href = new XPCNativeWrapper(unsafeLoc, "href").href;
var scripts = this.initScripts(href);

if (scripts.length > 0) {
this.injectScripts(scripts, href, unsafeWin, chromeWin);
}
}


Эта функция прописана в \extensions\{e4a8a97b-f2ed-450b-b12d-ee082ba24781}\components\greasemonkey.js и выполняется, как и положено, по наступлению события. Я же хочу запустить её произвольно, но для этого нужны эти самые аргументы...

P.S. дело нужно, чтобы переделать систему обновления скриптов в GreaseMonkey (которой на самом деле нет)

Задайте свой вопрос

Если у вас есть вопрос по разработке или дизайну сайтов, вы можете задать его на Временно.нет и тысячи наших читателей помогут вам найти на него ответ.

Задать свой вопрос

Расскажите друзьям

Ответы на вопрос — 2

Булат
UPD: ответ найден chromeWin.gBrowser.contentWindow.wrappedJSObject
#
Булат
Виталий
Привет. У меня не ответ ,а вопрос. подскажи где прочитать про XPCNativeWrappers можно, а то хочу поучиться в обезьянке писать скрипты, а простой JS то работает то нет , особенно странно работает document.getElementById.
#
Виталий

Новый ответ

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler