Как скопировать текст в буфер обмена, нажав кнопку - PullRequest
0 голосов
/ 10 октября 2018

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

По сути, у меня есть переменная с именем my_fav_food.Тогда у меня есть кнопка с именем My Fav Food.Когда я нажимаю эту кнопку, она вызывает функцию copying_function и анализирует переменную my_fav_food в функции.Затем функция автоматически копирует текст в буфер обмена.

<!DOCTYPE html>
<html>
<body>
<script>
var my_fav_food = "My fav food is pizza"
</script>

<button onclick="copying_function(my_fav_food)">My Fav Food</button>

<script>
function copying_function(string) {
  string.select();
  document.execCommand("string");
}
</script>

</body>
</html>

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вам необходимо создать элемент DOM и задать для него строку, а затем сделать выбор программным способом.Поскольку вы не добавляете элемент в DOM, он не будет виден в представлении.

<!DOCTYPE html>
<html>
<body>
<script>
var my_fav_food = "My fav food is pizza";
</script>

<button onclick="copying_function(my_fav_food)">My Fav Food</button>

<script>
function copying_function(string) {
 // string.select();
  const el = document.createElement('textarea');
  el.value = string;
  document.body.appendChild(el);
  el.select();
  document.execCommand('copy');
  console.log("The data copied successfully! press `ctrl+v` to see output");
    document.body.removeChild(el);
}
</script>

</body>
</html>
0 голосов
/ 10 октября 2018

Метод select() можно использовать только для выбора содержимого текстового поля.Вы не можете использовать его так, как используете его сейчас.

Вы можете попробовать: https://clipboardjs.com/

Или вы можете попробовать взломать текст, чтобы поместить текст в область скрытого текста (Я не гарантирую, что это сработает)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...