Букмарклет(bookmarklet) - это javascript-код, который сохраняется как закладка
в браузере. Он работает за счет использования протокола <a href="javascript:...">.
Выбирая такую закладку, вы запускаете яваскрипт-код в контексте текущей страницы.
А дальше он уже может делать что угодно: править страницу, делать запросы к
серверу и, вообще, использовать всю мощь современного javascript.
Поэтому де-факто букмарклет - это javascript-плагин к браузеру.
Букмарклеты - JavaScript в адресной строке
Букмарклет (bookmarklet) — небольшая JavaScript-программа, сохраняемая как браузерная
закладка.
Современные браузеры поддерживают несколько протоколов. Наиболее часто нами
используется протокол http, для получения гипертекстовых документов. Реже используется
ftp-протокол для обмена файлами, а вот о протоколе javascript слышали немногие.
Адрес, записанный в протокоде javascript выглядит так:
В результате помещения этого адреса в адресную строку браузера выполнится следущий
за javascript: js-код. В данном случае мы увидим окно-предупреждение с текстом
'I am bookmarklet!'. Как и любой другой адрес, javascript-адреса можно размещать
в обычных ссылках и добавлять в закладки.
Безопасность
При кликах по неблагонадежным ссылкам следует быть осторожным, вместе с переходом
на другой вы можете передать данные о текущей сессии злоумышленникам. Например,
эта ссылка лишь покажет вам куку для текущей страницы, хотя могла бы передать
эту куку на ресурс злоумышленника с прочими данными.
Создание букмарклетов
У браузеров есть ограничение на длину букмарклетов, причем у каждого браузера
оно свое. Экспериментальным путем автор выяснил, что самой жесткое ограничение
у IE (Internet Explorer) — 500 символов. У остальных браузеров тоже есть лимит,
но он больше и автор поленился его высчитывать.
Таким образом, при написании букмарклета лучше максимально сокращать имена
переменных и функций. В идеале до одного символа.
Следующее ограничение диктуется форматом адреса — весь код должен быть написан
в одну строку, иначе никак...
И последнее. Удобно записывать код в виде анонимной функции, вызываемой сразу
после объявления, чтобы не получилось пересечения переменных букмарклета с переменными
на странице.
Учитывая всё вышеперечисленное напишем простой букмарклет, который будет выводить
адреса всех подключенных CSS-файлов на странице.
Подсвечивает все слова на странице, содержащие искомые символы.
Находит и подсвечивает все слова, содержащие искомые символы, кроме случаев,
когда фраза прерывается другим элементом.
Например, букмарклет найдет слова "Paul McGarry" и "искомые
слова", но не фразу "на скрипте" в абзаце, что идет ниже.
Позволяет сортировать ряды в таблицах на веб-странице по алфавиту.
Добавляет еще один ряд сверху каждой таблицы со ссылками "a" и "d"
над каждой колонкой. Щелкнув по ссылке, вы отсортируете таблицу в убывающем
или возрастающем порядке по данной колонке. Сортировка идет по HTML-коду,
так что если в колонке присуствуют ссылки, ряды со ссылками будут идти первыми.
Превращает ряды таблиц в колонки, а колонки - в ряды, и наоборот.
Учитывает rowspan и colspan, а также по возможности старается соблюсти цвет
фона в ячейках.
Определяет цветовую палитру страницы и показывает её в новом окне. В палитре
не присутствуют цвета, заданные с помощью псевдоклассов :hover, :active, :focus
и т.п.