Хочу создать расширение для Chrom'а.
Идея следующая:
Есть «словарь»(пока что только в голове) следующей структуры: есть несколько сущностей для каждой из которых подобрано несколько определений.
Например:
first («one», «1», «один», «первый»)
second («tow», «2», «два», «второй»)
bear («медведь»,)
…
По просьбе, или по некоторому событию(click по определённой ссылке на страничке) расширение должно начать искать на просматриваемых страницах определения(те что в скобках) из словаря, подсвечивать их(просто для веселья и наглядности) и если для сущности из словаря было найдено хотя бы одно определение, то помечать её как «найденную». В итоге должен получиться некий список найденных сущностей.
И наконец, опять же по просьбе и при переходе на определённую страницу с чекбоксами Id которых совпадает с названиями сущностей, расширение должно расставить галочки в соответствии со списком найденных сущностей.
Прошу подсказать мне общую архитектуру скрипта, что гуглить, что читать, а то я в полной растерянности. В особенности интересует способ хранения словаря и списка.
Документацию по разработке расширений уже читаю :)
Определенно, вам нужно просто прочитать документацию для начинающих. Там все предельно быстро и понятно — пара часов и вы уже в курсе.
То, что вы ищете называется content script — это тип расширений, которые цепляются прямо к DOM по тем юрл, права на которые юзер дал (в вашем случае — на все юрл, видимо).
Весь процесс совершенно не сложен — обычный js (не вздумайте использовать jQuery для поиска слов на странице!), за пару дней можно управиться.
Если на сайте используется jQuery и вы планируете делать скрипты инъекции, то он нужен. Можно конечно использовать jquery сайта, но возможно вы захотите использовать свою версию (например, более новую).
jQuery в расширении под хром не нужен, а только добавит оверхеда тому, что в свежих браузерах можно сделать и без него. Вы упоминаете работу с селекторами — document.querySelectorAll.
Это различные критерии для выбора элементов из DOM — getElementById('id'), getElementsByTagName('a') и прочее :) опять же — сходите на javascript.ru, там неплохое описание основ было. Хотя, как говорится «книга лучше»