Copy URL F2 Tab Mod (JS) : 2021.5.21
Опубликовано: Бармалей · 21.05.2021 · 00:01 ••• Обновление: 30.05.2021 · 13:00 0

Базовая версия пользовательского скрипта, оптимизация и упрощение кода.
Сделан по "просьбам трудящихся" на основе расширения Copy URL CR.RU.

Проверен в браузерах:
Firefox 52ESR + SRWare Iron 49 + 360 Extreme Explorer 9/11/12/13 (CR63/69/78/86) + Chromium 87.


Основные изменения:
  • из кода прототипа удалены неиспользуемые функции (оставлен только punicode-конвертор и копировщик);
  • добавлена возможность ручного изменения шаблона копирования и активирующей горячей клавиши.
Прочие изменения:
  • добавлены параметры скрипта в заголовке (название, версия, описанние RU/EN, хомяк, match)
  • добавлена иконка скрипта (отображается в списке скриптов), в виде png/base64.

Настройка шаблона вывода и изменение горячей клавиши

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

"Федеральные органы исполнительной власти России"
[ http://россия.рф/main/ministry/isp-vlast44.html ]

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

var template = '"%title%"\n[ %url% ]'

Кроме выделенных элементов, являющихся соответственно идентификаторами заголовка (%title%) и URL (%url%) текущей вкладки, вы можете менять шаблон произвольным образом, вплоть до исключения из шаблона любого из идентификаторов (при этом, понятно, в буфере обмена его значение будет отсутствовать).

Например, если выходной шаблон упростить до такого:

var template = '%url%'

в буфер обмена будет скопирован только декодированный URL вкладки (из примера выше):

http://россия.рф/main/ministry/isp-vlast44.html

Кроме того, при желании можно вручную изменить и горячую клавишу копирования.
Для этого следует изменить соответствующий код клавиши в скрипте (выделен цветом):

document.addEventListener('keydown', function(e){ e.code == 'F2' && …

Правильные коды всех клавиш можно самостоятельно определить, например, на этой странице или на этом сайте.

В принципе, можно никуда не ходить, а просто ввести в консоли Инструментов разработчика (F12 на любой странице) вот такой код:

document.addEventListener('keydown', function(e){console.log(e)})

…затем на странице понажимать нужные клавиши и посмотреть результат в консоли. :)

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

Например, вот так можно отслеживать двойной щелчок:

document.addEventListener('dblclick', function(){ allowProcessing && doCopy() });

…а вот так – щелчок средней кнопкой:

document.addEventListener('mouseup', function(e){ e.which == 2 && allowProcessing…

Понятно, что и в этом случае могут быть конфликты, например, с другими аддонами или скриптами самой страницы, но если что – можно пробовать и другие варианты, с зажатием управляющих клавиш и т.д.… :)

Следует отметить ещё один момент, решающий потенциальную проблему "повтора" клавиш (многократных вызовов копировочной функции при удержании горячей клавиши). Сам по себе повтор никак не влияет на результат, но можно и принципиально исключить эту ситуацию, изменив способ отслеживания нажатий клавиш так, чтобы функция вызывалась не в момент нажатия, а в момент отпускания клавиши (выделено цветом):

document.addEventListener('keyup', function(e){ e.code == 'F2' && …


Скриншоты

Отображение на панели менеджера скриптов Tampermonkey:


История и обсуждение

Общие технические сведения
  • Технологии и API:
    Чистый JavaScript (ES5), автономный код без подгрузки библиотек
  • Запрашиваемые разрешения:
    [ "*://*/*" ]

Загрузка и установка

Дополнительно

Официальные версии Документация
Бармалей 21.05.2021 30.05.2021 337 0.0

Поделиться

Всего комментариев: 0
close