Opera extensions
Dec. 19th, 2010 04:21 pmРешил общего развития ради и общественной пользы для, ознакомиться с написанием расширений для Оперы.
Что имею сказать: сам процесс элементарен. В наличии есть пяток специфичных функций для взаимодействий с самой Оперой, всё остальное - уже известные нам UserCSS и UserJS.
При этом документация и примеры размазаны по сайту так, что если бы не эта элементарность - хер бы с чем получилось разобраться. Да и сами хелпы написаны в двух стилях: либо для дибилов в духе "напишите вот так, нажмите вот здесь и оно заработает", либо для экстрасенсов в духе "вот функция и её параметры. ЧЁ ВАМ ЕЩЁ НАДО? ОПИСАНИЕ? НАХ ИДИТЕ!!!!".
Как работает JS в расширениях - непонятно. Часть функций тупо не работает, например document.getElementById всегда возвращает null, а попытка вызова document.write валит браузер вместе с дебаггером. Краш-репорт у меня так и не получилось отослать, не дождался.
Дебажить, кстати, предлагается, встроенным отладчиком, который умеет только показать место, где произошла ошибка, и всё. Плюс отладчик всегда висит отдельным окном, что очень неудобно. Я вывернулся - вытащил его на второй монитор, но не у всех есть такая роскошь.
Изврат, конечно, это всё, но интересно.
UPD. document.getElementById возвращает null не всегда. Глюк, похоже, как-то связан либо со скриптами, встроенными в страницу (элементы, которые находятся до первого <script> возвращаются нормально), либо с валидностью страницы (на тестируемой странице почему-то <body> открывается аж дважды, и до второго тега элементы тоже возвращаются).
Что имею сказать: сам процесс элементарен. В наличии есть пяток специфичных функций для взаимодействий с самой Оперой, всё остальное - уже известные нам UserCSS и UserJS.
При этом документация и примеры размазаны по сайту так, что если бы не эта элементарность - хер бы с чем получилось разобраться. Да и сами хелпы написаны в двух стилях: либо для дибилов в духе "напишите вот так, нажмите вот здесь и оно заработает", либо для экстрасенсов в духе "вот функция и её параметры. ЧЁ ВАМ ЕЩЁ НАДО? ОПИСАНИЕ? НАХ ИДИТЕ!!!!".
Как работает JS в расширениях - непонятно. Часть функций тупо не работает, например document.getElementById всегда возвращает null, а попытка вызова document.write валит браузер вместе с дебаггером. Краш-репорт у меня так и не получилось отослать, не дождался.
Дебажить, кстати, предлагается, встроенным отладчиком, который умеет только показать место, где произошла ошибка, и всё. Плюс отладчик всегда висит отдельным окном, что очень неудобно. Я вывернулся - вытащил его на второй монитор, но не у всех есть такая роскошь.
Изврат, конечно, это всё, но интересно.
UPD. document.getElementById возвращает null не всегда. Глюк, похоже, как-то связан либо со скриптами, встроенными в страницу (элементы, которые находятся до первого <script> возвращаются нормально), либо с валидностью страницы (на тестируемой странице почему-то <body> открывается аж дважды, и до второго тега элементы тоже возвращаются).