Заметки кодящего дизайнера

Как скопировать текст внутри контейнера

Нажатием кнопки отправляем текстовый фрагмент в буфер обмена.

Этот скрипт предназначен для копирования текста внутри контейнера по нажатию на кнопку. В данном случае будет скопирован только текст, любая HTML-разметка будет проигнорирована.

const copyText = () => {
    const button = document.getElementById('button');
    const container = document.getElementById('container');
    
    /* Если вдруг нет кнопки и/или контейнера, то дальше делать нечего. */
    if (!button || !container) return;

    button.addEventListener('click', () => {
        /* Получаем текст из контейнера. */
        const textToCopy = container.innerText;

        /* Создаем временное текстовое поле для копирования. */
        const tempTextarea = document.createElement('textarea');
        tempTextarea.value = textToCopy;

        /* Добавляем текстовое поле в документ, чтобы выполнить копирование. */
        document.body.appendChild(tempTextarea);

        /* Выделяем текст и выполняем команду копирования. */
        tempTextarea.select();
        document.execCommand('copy');

        /* Удаляем временное поле из документа. */
        document.body.removeChild(tempTextarea);
    }); 
}

copyText();

Впрочем, чтобы скрипт позволил копировать HTML вместо текста, потребуется всего-лишь заменить container.innerText; на container.innerHtml;.