Букмарклет

редактировать
A Firefox browser with a dialog reading "There are about 2502 words on this page." Демонстрация букмарклета, подсчитывающего количество слов на странице. Показан браузер Firefox 65.0.2, работающий в Windows 10.

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

Другое название букмарклета - favelet или favlet, производный от избранного.

Содержание
  • 1 История
  • 2 Концепция
  • 3 Использование
    • 3.1 Установка
    • 3.2 Пример
  • 4 См. также
  • 5 Ссылки
  • 6 Внешние ссылки
История

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

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

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

Более широкая реализация Политики безопасности контента (CSP) на веб-сайтах вызвала проблемы с выполнением и использованием букмарклетов (2013-2015), причем некоторые предполагают, что это приветствует конец или смерть букмарклетов. Уильям Доннелли создал временное решение этой проблемы (в конкретном случае загрузки, ссылки и использования кода библиотеки JavaScript) в начале 2015 года, используя пользовательский скрипт Greasemonkey (Firefox / Pale Moon надстройка браузера) и простой протокол связи букмарклет-пользовательский скрипт. Он позволяет запускать (на основе библиотеки) букмарклеты на всех без исключения веб-сайтах, включая те, которые используют CSP и имеют схему URI https: //. Обратите внимание, однако, что если / когда браузеры поддерживают отключение / запрет выполнения встроенного скрипта с использованием CSP, и если / когда веб-сайты начинают реализовывать эту функцию, это «нарушит» это «исправление».

Concept

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

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

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

javascript: (function () {// Операторы, возвращающие не неопределенный тип, например присваивания}) ();

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

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

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

  • изменять внешний вид веб-страницы в браузере (например, изменять размер шрифта, цвет фона и т. Д.)
  • извлекать данные с веб-страницы (например, гиперссылки, изображения, текст и т. д.)
  • Удалите перенаправления из результатов поиска (например, Google), чтобы показать фактический целевой URL
  • Отправьте текущую страницу в службу блогов, например Posterous, службу сокращения ссылок, например bit.ly, или службу закладок, например Delicious
  • Запросить поисковая система или онлайн-энциклопедия с выделенным текстом или диалоговым окном
  • Отправьте текущую страницу в службу проверки ссылок или службу переводов
  • Установите часто выбираемые параметры конфигурации, когда сама страница не предоставляет возможности сделать это

Установка

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

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

Пример

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

javascript: (function () {function se (d) {return d.selection? D.selection.createRange (). Text: d.getSelection ()} s = se (document); for (i = 0; i 

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

javascript: location.href = 'https: // web.archive.org / save / '+ document.location.href;

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

javascript: void (window.open ('view-source:' + location));

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

javascript: alert ('\ tdocument.URL \ n' + document.URL + '\ n \ tdocument.lastModified \ n' + document.lastModified + '\ n \ tlocation \ n' + location);

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

См. Также
Ссылки
Внешние ссылки

.

Последняя правка сделана 2021-05-13 14:33:37
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте