Речь идет о запуске функции страницы из расширения.

Суть в том что пишу расширение под [firefox], и столкнулся с такой проблемой: мне надо запустить JS-функцию подключенную и доступную на открытой сейчас странице.
Обратиться к ней через content.foo() не получается.

Подскажите в какую сторону рыть...
P.S. Или где спросить, если я не в тему :)

Тема перенесена из форума «Поддержка пользователей» в форум «Разработка».

Если я правильно понял вопрос, то так:

Выделить код

Код:

content.document.location.href = "javascript:void foo()";

У меня получается.

Страница foo.html

Выделить код

Код:

<html><head>
<script>
function bar(x) { alert(x); }
</script>
</head><body>ащщ</body></html>

Открываю страницу в ФФ. В JS-консоли из Extension Developer:

Выделить код

Код:

> enumerateWindows()
...
> scope(...)
Scope is now [object ChromeWindow]. If a variable is not found in this scope, window will also be searched. New variables will still go on window.
> content.bar
function bar(x) { alert(x); }
> content.bar(1)
// фокусится на главном окне ФФ и показывает алерт

Вообще для всего этого нужен XPCSafeJSObjectWrapper. Есть только в FF3.0 и позже и должен создаваться по умолчанию. Думаю, можно сделать его принудительно. Видимо, что-то вроде content.XPCSafeJSObjectWrapper(...), но какие параметры писать, я не знаю.