Поскольку использование букмарклетов озадачило Пола, я должен добавить небольшое введение в их использование. Я делаю это в отдельном сообщении, чтобы не смешивать вещи.
Bookmarklets (также называемые favlets) - это небольшие JavaScript-скрипты (sic), предназначенные для вставки в адресную строку браузера (как и любой другой URL-адрес) и, следовательно, для запуска на текущей странице.
После запуска (вставьте, нажмите Enter), вы можете добавить его в закладки для повторного использования (добавить в избранное в IE). Обратите внимание, что браузер может добавить в закладки исходный URL-адрес, затем необходимо отредактировать закладку и заменить URL-адрес сценарием.
Конечно, вы также можете добавить его в строку URL для быстрого доступа.
Эти сценарии действуют как часть текущей страницы, обращаясь к глобальным переменным и функциям JS, объектам Dom и т. Д.
Они могут быть очень простыми, например, семенные javascript: alert("Hello world!");
или достаточно сложными, как приведенные выше. Если он возвращает значение (или если последнее выражение имеет значение), значение заменяет текущую страницу. Чтобы избежать этого, вы можете завершить сценарий с помощью alert
(для отображения результата) или обернуть сценарий в определение функции и вызвать эту функцию, как я делал выше. (Некоторые также ставят void (0); в конце, но я видел, что это считается плохой практикой.)
Преимущество функционального решения состоит в том, что все переменные скрипта являются локальными для апплета (если, конечно, объявлено с var
), избегая вмешательства / побочных эффектов со скриптами на локальной странице. Вот почему у функции обертки должно быть имя, которое вряд ли будет конфликтовать с локальным скриптом.
Обратите внимание, что некоторые браузеры (читай: «IE») могут ограничивать размер фавлетов, макс. длина зависит от версии (имеет тенденцию к уменьшению). Вот почему удаляются все бесполезные пробелы (для этого хорошо подходит создатель букмаркетов, указанный выше), и я удалил сравнения явных значений с пустыми и неопределенными значениями, которые я обычно делаю. Мне также пришлось разделить фавлет на две части: первая часть, определяющая функцию (действующая до тех пор, пока страница не будет изменена / обновлена), вторая часть, использующая ее.
Полезный инструмент, особенно в браузерах, не допускающих пользовательских скриптов (как Greasemonkey) или без этого расширения.