themu/static/js/copy.js
2023-08-02 22:15:52 +06:00

28 lines
1.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Получаем элементы, с которыми будем работать
const codeElement = document.querySelector('.highlight code');
const spanElement = codeElement.querySelector('span span');
// Добавляем обработчик события на ::before псевдоэлемент
codeElement.addEventListener('click', () => {
// Создаем временный элемент textarea
const tempTextarea = document.createElement('textarea');
// Устанавливаем значение текста в textarea равным тексту из span
tempTextarea.value = spanElement.textContent;
// Добавляем textarea в документ (необходимо, чтобы метод .select() сработал)
document.body.appendChild(tempTextarea);
// Выделяем текст в textarea
tempTextarea.select();
// Копируем выделенный текст в буфер обмена
document.execCommand('copy');
// Удаляем временный элемент textarea
document.body.removeChild(tempTextarea);
// Можно добавить визуальную обратную связь для пользователя, например, изменить стиль ::before
// codeElement.style.setProperty('content', '"Copied!"');
// setTimeout(() => codeElement.style.removeProperty('content'), 1000);
});