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

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

Другое название букмарклета - favelet или favlet , производное от любимого . [1]

История [ править ]

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

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

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

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

Концепция [ править ]

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

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

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

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

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

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

Использование [ править ]

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

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

Установка [ править ]

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

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

Пример [ править ]

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

javascript : ( function ()  { function  se ( d )  {  return  d . selection  ?  d . selection . createRange (). text  :  d . getSelection () }  s  =  se ( document );  for  ( i = 0 ;  i < frames . length  &&  ( s == null  ||  s== '' );  i ++ )  s  =  se ( кадры [ i ]. документ );  if  ( ! s  ||  s == '' )  s  =  prompt ( 'Введите% 20search% 20terms% 20for% 20Wikipedia' , '' );  open ( '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 : void ( window . open ( 'view-source:' + location ));

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

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

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

См. Также [ править ]

  • Грязная обезьяна
  • iMacros
  • Однострочная программа

Ссылки [ править ]

  1. ^ Джонатан Авила (2014-03-02). «Как создать фавлет для тестирования доступности» .
  2. ^ Домен bookmarklets.com. Архивировано 7 июля 2009 г. на Wayback Machine, зарегистрировано 9 апреля 1998 г.
  3. ^ «Активация команд JavaScript с персональной панели инструментов» . Что нового в JavaScript 1.2 . Корпорация Netscape Communications. 1997. Архивировано из оригинала на 2002-06-11.
  4. ^ Willison, Саймон (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 , Opera , Safari и Chrome . Не работает в IE7 или IE8. Первоисточник: Alex Boldt

Внешние ссылки [ править ]

  • Калишайн, Тара (3 февраля 2004 г.). "Букмарклеты для ускорения веб-серфинга" . Журнал ПК . Проверено 31 августа 2007 года .