我尝试了许多方法来将通过ajax调用调用的PHP函数返回的某些文本复制到剪贴板。
我尝试了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
,然后是第二种方法,将可见性设置为无的输入文本放置。
在两种情况下,我都无法设置属性值,然后无法使用功能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...");
}
});
});
});