О разработке расширений
Подведем небольшой итог. Итак!
Расширения к браузерам - это программы, которые внедряются в браузер и добавляют в него новые функции или настраивают имеющиеся.
Расширения к браузерам могут:
- изменять html-код страниц, открываемых в браузере. В том числе внедрять в них скрипт, который на страницах не отображается, но выполняется для каждой странице при её загрузке.
- В хроме такой скрипт называется скриптом содержимого или контентным скриптом, в мазиле и опере - юзерскриптом.
- Примечание: в отличие от обычных видимых скриптов, этот скрипт может делать кроссдоменные запросы XMLHttpRequest.
- добавлять кнопки на панели инструментов браузера и создавать новые тулбары
- управлять вкладками браузера: создавать, закрывать, обновлять, посылать по определённому url-у
- управлять закладками браузера: создавать, изменять, удалять
- делать редиректы с одних url на другие, причём не только при открытии того или иного url во вкладке, но и при доступе к нему из фреймов, а также через XMLHttpRequest или через script, img, video.
- просматривать и изменять историю посещенных страниц в браузере
- и другое, в зависимости от браузера и его версии
Расширения можно публиковать в магазине расширений для соответствующего браузера, откуда пользователи смогут их скачивать бесплатно или покупать за деньги.
Расширения к браузерам обычно состоят из:
- файла настроек расширения (ini, json, xml), где указаны, например, название расширения, его версия, автор, поддерживаемые версии браузера, а также файлы скриптов и html страниц, необходимых расширению
- фонового JS-скрипта (или фоновой страницы с таким скриптом), который выполняется 1 раз при загрузке браузера, не отображается ни на каких страницах, но может менять какие-то настройки в браузере, скажем добавлять кнопку на тулбар
- юзерскрипта, который внедряется в страницы, не отображается в их коде, но может их изменять так же свободно, как и если бы он был на данном сайте изначально
- вспомогательных html-страниц, например, страницы настроек для пользователя или диалогового окна, открывающегося при нажатии на кнопку на тулбаре
Всё это либо упаковывают в zip-архив и устанавливают в браузер через страницу Расширения/Дополнения
(предварительно сменив расширение архива в зависимости от браузера), либо просто помещают в отдельную папку и опять устанавливают через страницу Расширения/Дополнения
, указав путь к этой папке (ручная установка в распакованном виде доступна в хроме).
Как вы уже успели заметить — логику расширения, в основном, пишут на JavaScript, интерфейс пользователя создают с помощью HTML+CSS, а файл настроек пишут на JSON/XML.