Я пытаюсь скопировать часть ответа JSON AJAX в буфер обмена пользователя.Пользователь отправляет форму, нажимая кнопку, и я хочу, чтобы ответ был скопирован в его буфер обмена, без необходимости повторного взаимодействия со страницей.
Что у меня есть:
$("#button").click(function() {
try {
$.ajax({
url: "ajax.php",
type: "POST",
data:
{
ajax: ajax
},
success: function(result) {
var results = $.parseJSON(JSON.stringify(result));
let url = results['result']['url']; // Just a normal URL
$("#content").append('<input id="copyurl" type="hidden" value="' + url + '">');
$("#content").append('<button id="copy" class="hidden" onclick="copy()" />');
$("#copy").click();
//showSuccessIcon('absolute-center', 'The link has been copied to your clipboard!');
},
fail: function() {
showErrorIcon('absolute-center', 'Oops! Could not connect to server.');
throw new Error('Failed to send POST request');
}
});
} catch(err) {
showErrorIcon('absolute-center', 'Oops! Something went wrong.');
throw new Error('Failed to send POST request: ' + err);
}
});
copy ():
function copy() {
var click = document.getElementById("copyurl");
click.select();
document.execCommand("copy");
}
Код сначала создает элемент ввода «copyurl», из которого копируется URL.Затем он создает скрытую кнопку, которую нажимает, и выполняет функцию copy ().
Этот код ничего не делает.Я не получаю никаких ошибок в консоли, и мой буфер обмена остается прежним.
Я читал, что браузер не будет выполнять execCommand () без ввода данных пользователем, поэтому я не уверен, что ям предложение даже возможно.(