← Все статьи

Типы действий

Кнопки панели инструментов «копировать как markdown» и «чистый URL»

JS-правила JustZix запускаются автоматически при загрузке страницы. Действия — другое: это кнопки панели инструментов, чей код запускается только когда вы их кликаете. Это делает действия идеальными для инструментов по запросу: скопировать текущую страницу как markdown, убрать мусор отслеживания из URL или переписать ссылки. Вот три, которыми вы будете пользоваться каждый день.

Действие 1: скопировать заголовок и URL страницы как markdown

Когда вы собираете ссылки для заметок или документов, вам нужна аккуратная markdown-ссылка, а не сырой URL. Это действие строит её и копирует в буфер обмена.

var title = (document.title || location.hostname).trim();
var url = location.href;
var markdown = '[' + title + '](' + url + ')';

navigator.clipboard.writeText(markdown).then(function () {
  console.log('Скопировано: ' + markdown);
}).catch(function () {
  console.log('Буфер обмена заблокирован — скопируйте вручную: ' + markdown);
});

Поскольку действия запускаются по клику, браузер трактует запись в буфер обмена как пользовательский жест, так что navigator.clipboard.writeText разрешён. JS-правило, работающее при загрузке страницы, не смогло бы сделать это надёжно.

Действие 2: скопировать выделенный текст как markdown

Выделите заголовок и немного текста, кликните кнопку и получите markdown обратно. Эта версия определяет, находится ли выделение внутри элемента-заголовка.

var sel = window.getSelection();
var text = sel ? sel.toString().trim() : '';

if (!text) {
  console.log('Сначала выделите текст.');
} else {
  var node = sel.anchorNode;
  var el = node && node.nodeType === 3 ? node.parentElement : node;
  var tag = el ? (el.tagName || '').toLowerCase() : '';
  var prefix = '';
  if (tag === 'h1') prefix = '# ';
  else if (tag === 'h2') prefix = '## ';
  else if (tag === 'h3') prefix = '### ';

  navigator.clipboard.writeText(prefix + text);
  console.log('Скопировано как markdown.');
}

Действие 3: убрать параметры отслеживания из URL

Расшаренные ссылки часто захламлены utm_*, fbclid, gclid и похожими параметрами отслеживания. Это действие убирает их и копирует чистый URL — без перезагрузки страницы.

var JUNK = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content',
            'fbclid','gclid','mc_eid','ref','ref_src','igshid','_hsenc'];

var u = new URL(location.href);
JUNK.forEach(function (param) {
  u.searchParams.delete(param);
});

var clean = u.toString();
navigator.clipboard.writeText(clean);
console.log('Чистый URL скопирован: ' + clean);

Если вы также хотите, чтобы адресная строка обновилась, добавьте history.replaceState(null, '', clean); — это бесшумно переписывает URL без дополнительного запроса.

Бонус: открывать все внешние ссылки в новых вкладках

Это лучше подходит как JS-правило (работает при загрузке), чем как действие, но оно естественно сочетается с инструментами выше. Оно находит ссылки, указывающие на другие домены, и помечает их для безопасного открытия в новой вкладке.

var here = location.hostname;
var links = document.querySelectorAll('a[href^="http"]');

links.forEach(function (a) {
  try {
    if (new URL(a.href).hostname !== here) {
      a.target = '_blank';
      a.rel = 'noopener noreferrer';
    }
  } catch (e) { /* пропустить некорректный href */ }
});

Установка rel="noopener noreferrer" — хорошая практика — она не даёт новой странице получить ссылку обратно на вашу вкладку.

Когда использовать действие, а когда правило

Просмотрите готовые кнопки в готовых примерах или скачайте JustZix, чтобы их настроить. Для автоматических правок при загрузке смотрите собственные сочетания клавиш.

Оцени эту статью

Оценок пока нет — оцени первым.

Попробуй сам

Установи JustZix и вставь любой сниппет из этой статьи. Две минуты от нуля до работающего правила на всех твоих устройствах.

Получить JustZix

Возможности · Как это работает · Примеры · Применение