Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Firefox плагин. (https://javascript.ru/forum/misc/5052-firefox-plagin.html)

bd_snr 11.09.2009 14:38

Firefox плагин.
 
Здравствуйте, помогите мне пожалуйста!

Хочу написать плагин под фаерфокс, который будет применять к открытой страничке простой джаваскрипт код.

В папке chrome/content/ лежит файл "sample.xul"
Его содержание
<?xml version="1.0"?>
<overlay id="sample" 
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        <script>
        function KS ()
        {
         var str = document.body.innerHTML.indexOf('begun_block_id'); 
if (str > -1) 
alert ("Yes"); 
var str = document.body.innerHTML.indexOf('begun'); 
if (str > -1) alert ("Yes");

alert('EEE');

        
        
        
        }
        </script>


 <statusbar id="status-bar">
  <statusbarpanel id="my-panel" label="Check BEGUN!" onclick="KS();"/>
 </statusbar>
</overlay>


Почему на работет? Справа внизу появляется чек бегун, но при нажатии ничего не происходит.

Kolyaj 11.09.2009 15:08

Проще взять GreaseMonkey и написать UserScript. В плагинах другое пространство имен и ваш document может указывать совсем не на то, что вы предполагаете.

Dmitry A. Soshnikov 11.09.2009 15:15

bd_snr, если оверлей подгрузился нормально, сначала проверьте, что срабатывает сам onclick на статусбаре - поставьте туда alert(1);. Дальше - вызов функции - с тем же содержимым - alert(1);. Если сработает - продолжайте проверять каждую строчку Вашего кода (я не уверен, что свойство .innerHTML доступно в XUL-неймспейсе, возможно проблема в этом).

Поставьте деббагер (Wenkman или Firebug).

Цитата:

Сообщение от Kolyaj
Проще взять GreaseMonkey и написать UserScript

Так может, человек плагин пишет, который не связан с обычным дополнительным выполнением скриптов. А это разные вещи.

bd_snr 11.09.2009 15:19

Цитата:

Сообщение от Kolyaj (Сообщение 29892)
Проще взять GreaseMonkey и написать UserScript. В плагинах другое пространство имен и ваш document может указывать совсем не на то, что вы предполагаете.

Так я уже сделал, хочу разобраться как это сделать плагином.

+ я хочу чтобы скрипт в любой момент времени мог срабатывать, а GreaseMonkey работает только после загрузки страницы. И еще хочу чтобы по нажатию клавиш срабатывал.

bd_snr 11.09.2009 15:20

Цитата:

Сообщение от Dmitry A. Soshnikov (Сообщение 29896)
bd_snr, если оверлей подгрузился нормально, сначала проверьте, что срабатывает сам onclick на статусбаре - поставьте туда alert(1);. Дальше - вызов функции - с тем же содержимым - alert(1);. Если сработает - продолжайте проверять каждую строчку Вашего кода (я не уверен, что свойство .innerHTML доступно в XUL-неймспейсе, возможно проблема в этом).

Поставьте деббагер (Wenkman или Firebug).

Сделал как Вы сказали, а потом увидел, что Вы это написали. =)
Не подскажите, где прочитать про джаваскрипт в расширениях?
Не знаю, что делать.

Dmitry A. Soshnikov 11.09.2009 15:24

bd_snr,

Цитата:

Сообщение от bd_snr
Не подскажите, где прочитать про джаваскрипт в расширениях?

Если расширение под Fx, вероятно, на MDC.

Цитата:

Сообщение от bd_snr
Не знаю, что делать.

Так что в итоге после тестов?

Kolyaj 11.09.2009 15:24

Dmitry A. Soshnikov,
писать плагин, который
Цитата:

Сообщение от bd_snr
будет применять к открытой страничке простой джаваскрипт код.

немножко глупо, не находите?
Если, конечно, цели не сугубо академические.

bd_snr 11.09.2009 15:28

Цитата:

Сообщение от Kolyaj (Сообщение 29901)
Dmitry A. Soshnikov,
писать плагин, который
немножко глупо, не находите?
Если, конечно, цели не сугубо академические.

Академические.)

bd_snr 11.09.2009 15:28

Цитата:

Сообщение от Dmitry A. Soshnikov (Сообщение 29900)
bd_snr,


Если расширение под Fx, вероятно, на MDC.


Так что в итоге после тестов?

innerHTML не работает.

bd_snr 11.09.2009 15:33

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


Часовой пояс GMT +3, время: 07:43.