Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Добавление ссылки на источник при копировании текста (https://javascript.ru/forum/css-html/83730-dobavlenie-ssylki-na-istochnik-pri-kopirovanii-teksta.html)

12345678 25.02.2022 13:17

Добавление ссылки на источник при копировании текста
 
Нашёл вот такой интересный скрипт, который добавляет ссылку на источник при копировании текста.

document.addEventListener('copy', (event) => {
  const pagelink = `\nИсточник: ${document.location.href}`;
  event.clipboardData.setData('text/plain', document.getSelection() + pagelink);
  event.preventDefault();
});


Но в нём очень не хватает двух вещей:
- Действовать только при копировании текста, который в том числе входит в
div id="content"
(т.е., к примеру, чтобы не добавлялось ссылка, если посетитель копирует комментарий или в сайдбаре что-то).
- И минимальное количество символов, при которых происходит добавление. К примеру, задать срабатывание при выделении от 50 символов.

Помогите, пожалуйста, наделить скрипт этими возможностями.

Aetae 25.02.2022 16:30

document.addEventListener('copy', (event) => {
  const container = document.querySelector('#document');
  const selection = document.getSelection();
  const text = selection.toString();
  
  if(
    text.length >= 50 && (
      container.contains(selection.anchorNode) ||
      container.contains(selection.focusNode) 
    )  
  ) {
    event.clipboardData.setData('text/plain', `${text}\nИсточник: ${document.location.href}`);
    event.preventDefault();
  }
});

12345678 25.02.2022 16:45

Aetae
Большое спасибо! Отменно работает :dance:


Часовой пояс GMT +3, время: 07:13.