4eloBek
@4eloBek
ученик

Почему не происходит запись текста в переменную из буфера при его вставке на телефоне?

Есть такое:
> Пример на jsfiddle

HTML:
<input type="text" maxlength="0" placeholder="Paste your text">
<textarea id="txt" disabled></textarea>

CSS:
body {text-align: center;}

input[type=text] {
    display: block;
    margin: 30px auto;
    border: 1px dashed #3d3d3d;
    text-align: center;
    outline: none;
}
textarea {
    position: relative;
    width: 250px;
    outline: none; 
    resize: none;
    margin-left: -5px;
}

JS:
document.querySelector("input").addEventListener("paste", function(e) {
            alert("Thanks")
			e.preventDefault();	
			var pastetext = e.clipboardData.getData("text/plain");
			document.getElementById('txt').value = pastetext;
		});


На компе работает. На телефоне - нет((
Ф-ция вызывается, потому как отображается alert, но запись в переменную не происходит.
В чем проблема? )
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
Ivanq
@Ivanq
Знаю php, js, html, css
Скорее всего, нет доступа к clipboardData. Но обходной маневр есть - содержимое клипборда находится в input. И maxlength надо убрать.

Полный код:
HTML
<input id="txt2" type="text" placeholder="Paste your text">
<textarea id="txt" disabled></textarea>


JS
document.querySelector("#txt2").addEventListener("paste", function(e) {
            alert("Thanks")
      e.preventDefault();	
      var pastetext = e.clipboardData.getData("text/plain");
      document.getElementById('txt').value = document.getElementById('txt2').value;
    });
document.querySelector("#txt2").addEventListener("change", function() {
      document.getElementById('txt2').value = '';
    });


Выношу очищение в отдельное событие, так как буквы можно вбить и с клавиатуры
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы