Программно вызвать событие copy/paste/cut

139
15 ноября 2019, 17:10

На странице имеется textarea:

<textarea id = "txt"></textarea>

Задаю ему обработчики программно. Есть ли варианты вызвать эти обработчики тоже программно? Спасибо.

Answer 1

Вот синхронный метод копирования:

document.querySelector('button').onclick = function(){ 
  var textArea = document.querySelector('#txt'); 
  textArea.focus(); 
  textArea.select(); 
  document.execCommand('copy') 
}
<textarea id = "txt">value 1</textarea> 
<br> 
<button>copy to clipboard</button> 
<br> 
paste here:<br> 
<textarea></textarea>

Вот асинхронный способ копирования-вставки:

document.querySelector('button#copy').onclick = function(){ 
  navigator.clipboard.writeText(document.querySelector('#txt').value) 
} 
 
document.querySelector('button#paste').onclick = function() { 
  var textArea = document.querySelector('#res'); 
  navigator.clipboard.readText().then(t => textArea.value=t) ; 
}
<textarea id="txt">value 1</textarea> 
<br> 
<button id="copy">copy to clipboard</button> 
<br> 
paste here:<br> 
<textarea id="res"></textarea> 
<br> 
<button id="paste">paste from clipboard</button>

Все перечисленное неплохо будет обернуть в try-catch или проверить наличие поддержки функций иным способом

READ ALSO
Как вывести значение из textarea в js

Как вывести значение из textarea в js

Работою с API SpeechSynthesis, хочу сделать так, чтобы из textarea брался вводимый текст пользователем и с помощью button прослушивался, вопрос в чём моя ошибка?

131
JWT ASP.Net Core Web API

JWT ASP.Net Core Web API

я знакомлюсь с Jason Web Tokens и не могу найти толковую литературу, которая помогла бы мне в этомБыл бы невероятно признателен, если бы таковую кто...

118
Объясните почему ошибка [закрыт]

Объясните почему ошибка [закрыт]

Не могу понять почему это не работает, ведь kt1 и kt2 присвоился тип double и метод math возвращает переменной hypot double так почему же программа выводит...

159