mirror of
https://github.com/fruworg/themu.git
synced 2024-11-16 07:07:16 +03:00
js
This commit is contained in:
parent
50b867f53e
commit
5820838ad8
@ -1,28 +1,42 @@
|
||||
// Получаем элементы, с которыми будем работать
|
||||
const codeElement = document.querySelector('.highlight code');
|
||||
const spanElement = codeElement.querySelector('span span');
|
||||
// Получаем все элементы с классом "highlight"
|
||||
const codeElements = document.querySelectorAll('.highlight');
|
||||
|
||||
// Добавляем обработчик события на ::before псевдоэлемент
|
||||
codeElement.addEventListener('click', () => {
|
||||
// Создаем временный элемент textarea
|
||||
const tempTextarea = document.createElement('textarea');
|
||||
// Добавляем обработчик события на каждый элемент с классом "highlight"
|
||||
codeElements.forEach((highlightBlock) => {
|
||||
// Находим элемент с тегом "code" внутри текущего блока "highlight"
|
||||
const codeElement = highlightBlock.querySelector('code');
|
||||
|
||||
// Устанавливаем значение текста в textarea равным тексту из span
|
||||
tempTextarea.value = spanElement.textContent;
|
||||
// Находим все span-элементы внутри блока
|
||||
const spanElements = highlightBlock.querySelectorAll('span');
|
||||
|
||||
// Добавляем textarea в документ (необходимо, чтобы метод .select() сработал)
|
||||
document.body.appendChild(tempTextarea);
|
||||
// Создаем текст, объединяя содержимое всех span-элементов внутри текущего блока "highlight"
|
||||
let combinedText = '';
|
||||
spanElements.forEach((spanElement) => {
|
||||
combinedText += spanElement.textContent;
|
||||
});
|
||||
|
||||
// Выделяем текст в textarea
|
||||
tempTextarea.select();
|
||||
// Добавляем обработчик события на клик по элементу "code"
|
||||
codeElement.addEventListener('click', () => {
|
||||
// Создаем временный элемент textarea
|
||||
const tempTextarea = document.createElement('textarea');
|
||||
|
||||
// Копируем выделенный текст в буфер обмена
|
||||
document.execCommand('copy');
|
||||
// Устанавливаем значение текста в textarea равным объединенному тексту
|
||||
tempTextarea.value = combinedText;
|
||||
|
||||
// Удаляем временный элемент textarea
|
||||
document.body.removeChild(tempTextarea);
|
||||
// Добавляем textarea в документ (необходимо, чтобы метод .select() сработал)
|
||||
document.body.appendChild(tempTextarea);
|
||||
|
||||
// Можно добавить визуальную обратную связь для пользователя, например, изменить стиль ::before
|
||||
// codeElement.style.setProperty('content', '"Copied!"');
|
||||
// setTimeout(() => codeElement.style.removeProperty('content'), 1000);
|
||||
// Выделяем текст в textarea
|
||||
tempTextarea.select();
|
||||
|
||||
// Копируем выделенный текст в буфер обмена
|
||||
document.execCommand('copy');
|
||||
|
||||
// Удаляем временный элемент textarea
|
||||
document.body.removeChild(tempTextarea);
|
||||
|
||||
// Можно добавить визуальную обратную связь для пользователя, например, изменить стиль ::before
|
||||
// codeElement.style.setProperty('content', '"Copied!"');
|
||||
// setTimeout(() => codeElement.style.removeProperty('content'), 1000);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user