Dec. 19th, 2010

pozitronik: (Default)
Решил общего развития ради и общественной пользы для, ознакомиться с написанием расширений для Оперы.
Что имею сказать: сам процесс элементарен. В наличии есть пяток специфичных функций для взаимодействий с самой Оперой, всё остальное - уже известные нам UserCSS и UserJS.
При этом документация и примеры размазаны по сайту так, что если бы не эта элементарность - хер бы с чем получилось разобраться. Да и сами хелпы написаны в двух стилях: либо для дибилов в духе "напишите вот так, нажмите вот здесь и оно заработает", либо для экстрасенсов в духе "вот функция и её параметры. ЧЁ ВАМ ЕЩЁ НАДО? ОПИСАНИЕ? НАХ ИДИТЕ!!!!".
Как работает JS в расширениях - непонятно. Часть функций тупо не работает, например document.getElementById всегда возвращает null, а попытка вызова document.write валит браузер вместе с дебаггером. Краш-репорт у меня так и не получилось отослать, не дождался.
Дебажить, кстати, предлагается, встроенным отладчиком, который умеет только показать место, где произошла ошибка, и всё. Плюс отладчик всегда висит отдельным окном, что очень неудобно. Я вывернулся - вытащил его на второй монитор, но не у всех есть такая роскошь.

Изврат, конечно, это всё, но интересно.

UPD. document.getElementById возвращает null не всегда. Глюк, похоже, как-то связан либо со скриптами, встроенными в страницу (элементы, которые находятся до первого <script> возвращаются нормально), либо с валидностью страницы (на тестируемой странице почему-то <body> открывается аж дважды, и до второго тега элементы тоже возвращаются).

December 2016

S M T W T F S
    123
45678910
1112131415 1617
18192021222324
25262728293031

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 27th, 2025 05:05 pm
Powered by Dreamwidth Studios