Базовая версия пользовательского скрипта, оптимизация и упрощение кода. Проверен в браузерах: Основные изменения:
Прочие изменения:
Настройка шаблона вывода и изменение горячей клавишиПо умолчанию для вызова функции копирования используется клавиша F2. Данные копируются в виде заголовка текущей вкладки в двойных кавычках, после которого с новой строки добавляется декодированный (читабельный) URL вкладки в квадратных скобках. В итоге содержимое буфера обмена выглядит, например, вот так: "Федеральные органы исполнительной власти России" Как уже сказано, при желании можно вручную изменить шаблон форматирования данных. 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: История и обсуждение
Общие технические сведения
Загрузка и установкаДополнительно |
Всего комментариев: 0 |