Копирование текста в JavaScript: подробное руководство

Чтобы скопировать текст в JavaScript, вы можете использовать несколько методов. Вот некоторые из наиболее распространенных подходов:

  1. Использование метода document.execCommand():

    function copyText(text) {
     var textArea = document.createElement("textarea");
     textArea.value = text;
     document.body.appendChild(textArea);
     textArea.select();
     document.execCommand("copy");
     document.body.removeChild(textArea);
    }

    Этот метод создает временный элемент textarea, устанавливает для него значение нужного текста, выделяет текст, а затем выполняет команду копирования с помощью document.execCommand("copy"). Обратите внимание, что этот метод может не работать в некоторых современных браузерах из-за ограничений безопасности.

  2. Использование API буфера обмена:

    function copyText(text) {
     navigator.clipboard.writeText(text)
       .then(function() {
         console.log("Text copied to clipboard");
       })
       .catch(function(err) {
         console.error("Failed to copy text: ", err);
       });
    }

    API буфера обмена предоставляет более современный и надежный способ копирования текста. Он использует метод navigator.clipboard.writeText()для записи текста в буфер обмена. Этот метод возвращает обещание, которое разрешается при успешном копировании текста.

  3. Использование метода document.createRange():

    function copyText(text) {
     var range = document.createRange();
     var selection = window.getSelection();
     range.selectNodeContents(element);
     selection.removeAllRanges();
     selection.addRange(range);
     document.execCommand("copy");
     selection.removeAllRanges();
    }

    Этот метод включает в себя создание диапазона, выделение текста внутри элемента, добавление диапазона к выделенному в окне, выполнение команды копирования и, наконец, очистку выделения.

  4. Использование элемента ввода:

    function copyText(text) {
     var input = document.createElement("input");
     input.value = text;
     document.body.appendChild(input);
     input.select();
     document.execCommand("copy");
     document.body.removeChild(input);
    }

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

Вот некоторые методы, которые можно использовать для копирования текста в JavaScript. Не забудьте выбрать метод, который лучше всего соответствует вашим требованиям и совместимости браузера.