Вход

Просмотр полной версии : Не работает копирование из буфера обмена в input


javascript_pupil
06.02.2019, 16:03
Взял готовый пример из stackoverflow, а он у меня почему-то не работает. Помогите, пожалуйста, найти ошибку. Содержимое буфера должно вставляться в поле input.

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta name="Description" content="">
<meta name="Keywords" content="">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj7 0gZWKYbI706tWS" crossorigin="anonymous">


<title>Test</title>
</head><body>
<div class="justify-content-center wrap"><form name="new_record" action="test.cgi" method="get">
<h1>Test</h1><br>

<div class="d-flex justify-content-center">

<script type="text/javascript">

async function paste(input) {
const text = await navigator.clipboard.readText();
document.new_record.input.value = text;

}

</script>
<input id="test_field" type="text" name="test_field" value="" placeholder="" onclick="paste(this)" required>
</div>

<button type="submit" class="btn btn-primary cl_btn">Отправить</button>
<button type="reset" class="btn btn-primary cl_btn">Очистить</button>
</div></form>
</body></html>

Nexus
06.02.2019, 16:14
Странно вы как-то к инпуту обращаетесь.
К форме обращаетесь по имени, а к инпуту по тэгу.

Вообще если текст из буфера читается корректно, то можно попробовать так:
async function paste(input) {
input.value = await navigator.clipboard.readText();
}

javascript_pupil
06.02.2019, 17:55
У меня никак не работает. Ни с Вашим вариантом, ни с
document.new_record.test_field.value = text;

Если кто-то поможет разобраться - буду признателен.

ksa
07.02.2019, 08:14
Если кто-то поможет разобраться - буду признателен.
В сети много примеров как работать с БФ...
https://habr.com/ru/company/ruvds/blog/358494/
http://qaru.site/questions/21329/javascript-get-clipboard-data-on-paste-event-cross-browser
https://stackoverrun.com/ru/q/206076

Вот даже предлагают готовые методы использовать
https://imapo.ru/clipboard-js-новый-метод-копирования-в-буфер/

javascript_pupil
07.02.2019, 09:34
Примеров то много, только ни один из них не работает... :(
я вот этот пробовал: https://stackoverflow.com/questions/50633601/is-it-possible-to-paste-from-clipboard-onclick-in-javascript

Мне всего то надо по щелчку мыши копировать буфер в input. У меня есть вариант, но он не работает с Safari. :(

ksa
07.02.2019, 14:08
только ни один из них не работает
У меня есть вариант, но он не работает с Safari.
Вот тебе и ответ - нет нормального кроссбраузерного способа. ;)