JavaScript: различные методы копирования значений в буфер обмена

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

Метод 1: использование метода document.execCommand() (не рекомендуется в некоторых браузерах):

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

Метод 2: использование метода navigator.clipboard.writeText() (требуется разрешение пользователя):

function copyToClipboard(value) {
  navigator.clipboard.writeText(value)
    .then(function() {
      console.log("Value copied to clipboard");
    })
    .catch(function(error) {
      console.error("Unable to copy value to clipboard: ", error);
    });
}

Метод 3. Использование API буфера обмена (требуется разрешение пользователя):

function copyToClipboard(value) {
  navigator.permissions.query({ name: "clipboard-write" }).then(function(result) {
    if (result.state === "granted" || result.state === "prompt") {
      navigator.clipboard.writeText(value)
        .then(function() {
          console.log("Value copied to clipboard");
        })
        .catch(function(error) {
          console.error("Unable to copy value to clipboard: ", error);
        });
    }
  });
}

Обратите внимание, что методы 2 и 3 требуют разрешения пользователя на доступ к буферу обмена. Кроме того, эти методы поддерживаются разными браузерами, поэтому важно протестировать их в разных браузерах.