Букмарклет - Bookmarklet

Браузер Firefox с диалоговым окном «На этой странице около 2502 слов».
Демонстрация букмарклета, подсчитывающего количество слов на странице. Показан браузер Firefox 65.0.2, работающий в Windows 10.

А букмарклет это закладка хранится в веб-браузер который содержит команды JavaScript, которые добавляют новые функции в браузер. Букмарклеты ненавязчивые JavaScripts хранится как URL из закладка в веб-браузер или как гиперссылка на страница в Интернете. Букмарклеты обычно JavaScript программы. Независимо от того, есть ли букмарклет коммунальные услуги хранятся в виде закладок или гиперссылок, они добавляют функции одним щелчком мыши в браузер или веб-страницу. При нажатии букмарклет выполняет одну из множества операций, таких как выполнение поискового запроса или извлечение данных из таблицы. Например, щелкнув букмарклет после выбор текст на веб-странице может запускать поиск в Интернете по выделенному тексту и отображать страница результатов поисковой системы.

Другое название для букмарклет является любимец или же фавлет, происходит от любимый.[1]

История

Стив Кангас из bookmarklets.com придумал это слово букмарклет[2] когда он начал создавать короткие сценарии на основе предложения в Netscape's Руководство по JavaScript.[3] До этого, Тантек Челик назвал эти сценарии любимцы и использовал это слово еще 6 сентября 2001 г. (личный[требуется разъяснение ]). Брендан Эйх, кто разработал JavaScript в Netscape дал этот отчет о происхождении букмарклетов:

В этом смысле они были преднамеренной особенностью: я изобрел javascript: URL вместе с JavaScript в 1995 году и предполагал, что javascript: URL-адреса могут использоваться как любые другие URL-адреса, в том числе с возможностью добавления закладок. В частности, я сделал возможным создание нового документа путем загрузки, например javascript: 'привет, мир', но также (ключ для букмарклетов) для запуска произвольного скрипта против ДОМ текущего документа, например javascript: предупреждение (document.links [0] .href). Разница в том, что последний тип URL использует выражение, которое оценивается как неопределенный тип в JS. Я добавил оператор void в JS перед поставкой Netscape 2, чтобы упростить удаление любого не неопределенного значения в javascript: URL.

— Брендан Эйх, электронное письмо Саймон Уиллисон[4]

Возросшее внедрение Политика безопасности контента (CSP) на веб-сайтах вызывало проблемы с выполнением и использованием букмарклета (2013-2015),[5] некоторые предполагают, что это знаменует конец или смерть букмарклетов.[6][7] Уильям Доннелли создал обходное решение для этой проблемы (в конкретном случае загрузки, ссылки и использования кода библиотеки JavaScript) в начале 2015 года, используя Грязная обезьяна пользовательский скрипт (Fire Fox / Бледная луна расширение браузера) и простой протокол связи букмарклет-пользовательский скрипт.[8] Он позволяет запускать (на основе библиотеки) букмарклеты на всех без исключения веб-сайтах, включая те, которые используют CSP и имеют схему URI https: //. Обратите внимание, однако, что если / когда браузеры поддерживают отключение / запрет выполнения встроенного скрипта с использованием CSP, и если / когда веб-сайты начинают реализовывать эту функцию, это «нарушит» это «исправление».

Концепция

Веб-браузеры используют URI для href атрибут <а> тег и для закладок. В Схема URI, Такие как http:, файл:, или же ftp:, определяет протокол и формат остальной части строки. Браузеры также реализуют префикс javascript: это для парсера такое же, как и любой другой URI. Внутренне браузер видит, что указанный протокол javascript, обрабатывает оставшуюся часть строки как приложение JavaScript, которое затем выполняется, и использует полученную строку как новую страницу.

Выполняемый сценарий имеет доступ к текущей странице, которую он может проверять и изменять. Если сценарий возвращает неопределенный тип (а не, например, строку), браузер не загружает новую страницу, в результате чего сценарий просто запускается для текущего содержимого страницы. Это позволяет вносить изменения, такие как изменение размера шрифта и цвета на месте, без перезагрузки страницы.

An анонимная функция который не возвращает значение, не определяет функцию и т. д., может использоваться, чтобы заставить скрипт возвращать неопределенный тип:

javascript:(функция(){  // Заявления, возвращающие не неопределенный тип, например задания})();

Однако, если сценарий включает определение / переопределение функции, например функция Use_this_globally(){...}, среда не будет заполнена им. По этой причине {произвольный сценарий} должен быть завернут в пустота(...);.

javascript:пустота({произвольный сценарий});

использование

Букмарклеты сохраняются и используются как обычные закладки. По сути, они представляют собой простые инструменты «в один щелчок», которые добавляют функциональности браузеру. Например, они могут:

  • Изменить внешний вид веб-страницы в браузере (например, изменить размер шрифта, цвет фона и т. д.)
  • Извлечь данные с веб-страницы (например, гиперссылки, изображений, текст, так далее.)
  • Удалите переадресацию из результатов поиска (например, Google), чтобы отображать фактический целевой URL[9]
  • Отправьте текущую страницу в службу ведения блогов, например Постерный, служба сокращения ссылок, например bit.ly, или сервис закладок, например Очень вкусно
  • Запросить поисковый движок или онлайн-энциклопедия с выделенным текстом или диалоговое окно
  • Отправить текущую страницу в проверка ссылки сервис или перевод служба
  • Установите часто выбираемые параметры конфигурации, когда сама страница не предоставляет возможности сделать это
  • Контроль HTML5 параметры воспроизведения аудио и видео, такие как скорость, зацикливание и отображение / скрытие элементов управления воспроизведением[10][11][12]

Установка

«Установка» букмарклета выполняется путем создания новой закладки и вставки кода в поле назначения URL. Или же, если букмарклет представлен в виде ссылки, в некоторых браузерах его можно перетащить на панель закладок. Затем букмарклет можно запустить, загрузив закладку в обычном режиме.

В Microsoft Edge, невозможно добавить букмарклет в избранное, вместо этого щелкните ссылку правой кнопкой мыши и выберите «Добавить в список для чтения». Затем букмарклет можно запустить, щелкнув его в списке для чтения. В Microsoft Edge список чтения находится в избранном и открывается с помощью значка, который представляет собой стопку строк.

Пример

Этот пример букмарклета выполняет поиск в Википедии по любому выделенному тексту в окне веб-браузера. При обычном использовании следующий код JavaScript будет установлен в закладку в браузере.[13] Панель закладок. С этого момента после выбора любого текста щелчок по букмарклету выполняет поиск.

javascript:(функция() {функция se(d) {    возвращаться d.отбор ? d.отбор.createRange().текст : d.getSelection()} s = se(документ); за (я=0; я<кадры.длина && (s==ноль || s==''); я++) s = se(кадры[я].документ); если (!s || s=='') s = Подсказка('Введите% 20search% 20terms% 20for% 20Wikipedia',''); открыто(https://en.wikipedia.org + (s ? '/w/index.php?title=Special:Search&search=' + encodeURIComponent(s) : '')).фокус();})();

Букмарклеты могут изменять место расположения, например чтобы спасти страница в Интернете к Wayback Machine,

javascript:место расположения.href='https://web.archive.org/save/'+документ.место расположения.href;

Открыть новый веб-браузер окно или вкладка, например чтобы показать источник веб-ресурса, если веб-браузер поддерживает схема URI источника просмотра,

javascript:пустота(окно.открыто('просмотреть источник:'+место расположения));

Показать информацию, относящуюся к текущему URL, например,

javascript:тревога(' tdocument.URL  n'+документ.URL+' n  tdocument.lastModified  n'+документ.Последнее изменение+' n  t расположение  n'+место расположения);

среди прочего.

Смотрите также

Рекомендации

  1. ^ Джонатан Авила (02.03.2014). «Как создать фавлет для тестирования доступности».
  2. ^ Домен bookmarklets.com В архиве 2009-07-07 на Wayback Machine зарегистрировано 9 апреля 1998 г.
  3. ^ «Активация команд JavaScript с персональной панели инструментов». Что нового в JavaScript 1.2. Netscape Communications Corporation. 1997. Архивировано с оригинал 11 июня 2002 г.
  4. ^ Уиллисон, Саймон (10 апреля 2004 г.). "Электронное письмо от Брендана Эйха". SitePoint. Получено 26 сентября, 2014.
  5. ^ «Ошибка 866522 - Букмарклеты, затронутые CSP».
  6. ^ "Букмарклеты мертвы".
  7. ^ "Медленная смерть букмарклетов".
  8. ^ «Воскрешение букмарклетов».
  9. ^ Рудерман, Джесси. "Букмарклеты для снятия раздражения". Сайт закладок Джесси. Получено 29 марта 2013.
  10. ^ "Букмарклеты скорости видео YouTube". sgeos.github.io. 2017-10-29.
  11. ^ Кант, Кушал (23 августа 2017 г.). «Как использовать параметры в тегах / атрибутах видео HTML5». Findnerd.
  12. ^ "HTML-тег видео". www.w3schools.com.
  13. ^ Проверено на Mozilla Firefox, Опера, Сафари, и Хром. Не работает в IE7 или IE8. Первоисточник: Алекс Болдт

внешняя ссылка