Я пробовал много способов скопировать некоторый текст, возвращенный из функции PHP, вызываемой посредством вызова ajax, в буфер обмена.
Я пробовал 2 варианта:
создайте текстовый элемент внутри функции, как описано здесь
const copyToClipboard = str => {
const el = document.createElement('textarea');
el.value = str;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
};
из этого поста: https://hackernoon.com/copying-text-to-clipboard-with-javascript-df4d4988697f
, а затем второй подход, поместив входной текст с видимостьюустановить в none.
В обоих случаях я не могу установить значение атрибута и затем использовать функцию select()
.Как вы можете видеть в моем коде, есть даже js и jQuery подходы для установки значения, но нет надежды!
$("#idStories").change(function() {
$("#bottone").click(function(event) {
event.preventDefault();
var idStory2 = $("#idStory").val();
$.ajax({
type: "POST",
url: "/copia",
data: {
"_token": "{!! csrf_token() !!}",
"idStory": idStory2
},
dataType: "json",
success: function(msg) {
var textC = JSON.stringify(msg.txt);
$('#xxx').val('marione');
var el = document.querySelector("#xxx");
//el.value='aaaaaaaaaaaaaa';
console.log(el);
el.select();
document.execCommand("copy");
alert('testo copiato');
},
error: function() {
alert("Chiamata fallita, si prega di riprovare...");
}
});
});
});