Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№116-06-2009 10:13:25

Astraller™
Участник
 
Группа: Members
Зарегистрирован: 16-06-2009
Сообщений: 1
UA: Firefox 3.0

Запуск функции из контента.

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

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

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

Отредактировано Astraller™ (16-06-2009 12:32:28)

Отсутствует

 

№216-06-2009 11:03:19

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5284

Re: Запуск функции из контента.

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


Do you feel lucky, punk?

Отсутствует

 

№322-06-2009 16:56:04

Орец
Участник
 
Группа: Members
Зарегистрирован: 18-08-2006
Сообщений: 84
UA: Firefox 3.0

Re: Запуск функции из контента.

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

Выделить код

Код:

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

Отсутствует

 

№423-06-2009 04:25:25

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.5

Re: Запуск функции из контента.

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

Страница 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(...), но какие параметры писать, я не знаю.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]