JS копировать в буфер обмена не работает - PullRequest
0 голосов
/ 04 июня 2018

Я использую fetch, чтобы получить текст и поместить его в текстовое поле.Затем я выбираю текст и пытаюсь скопировать его, но он не работает.Вот код:

 const copy_text_from_file = (filename) => {
  fetch('/texts/show/?filename=' + filename, {
    credentials: 'include'
  }).then(function(response) {
    return response.json();
  }).then(function(json) {
    const textarea = document.getElementById('clipboard');
    textarea.focus();
    textarea.innerHTML = json.content;
    textarea.select();
    console.log( document.execCommand('copy') ); // writes false to console
  });
};

Текст вставлен, текстовая область выделена и находится в фокусе, но ничего не копируется.Когда я запускаю document.execCommand('copy') из консоли браузера, это работает.Я пытался добавить таймауты, но это не помогает.Я пытался добавить кнопку с прослушивателем событий щелчка и кнопку запуска с click(), чтобы скопировать выделенный текст, но это тоже не помогло.

PS Текстовая область видна.

1 Ответ

0 голосов
/ 05 июня 2018

document.execCommand('copy') работает только при доверенных действиях пользователя, таких как событие щелчка.

Для получения дополнительной информации: http://www.w3.org/TR/clipboard-apis/#integration-with-rich-text-editing-apis

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