В настоящее время я работаю с функцией, жестко запрограммированной в javascript, чтобы скопировать пользовательский адрес тега в сочетании с предварительно определенной ссылкой. Я сделал текстовый элемент с типом ввода и установил его значение на то, что я хочу скопировать, но получается, что это не сработало так, как я хотел. После нажатия Ctrl + V он вставил второе в последнее значение в буфере обмена моего устройства. Как заставить execCommand («Копировать») работать со скрытым тегом ввода? (Функция вызывается для атрибута onclick тега img)
function shareFile() {
var hiddenItem = document.createElement("input");
hiddenItem.type = "text";
hiddenItem.setAttribute("style","display: none");
hiddenItem.value = <?php echo (isset($_SERVER['HTTPS'])?"\"https://":"\"http://").$_SERVER['SERVER_NAME']."/filesystem/openfile.php?dir=\" + " ?> encodeURI(this.parentNode.parentNode.parentNode.getAttribute("r-directory"));
hiddenItem.select();
console.log(hiddenItem.value);
document.execCommand("Copy");
// location.href = "resources.php?smsg=The file's link has been successfully copied to your clipboard." <?php if (!empty($_GET['dir'])) echo " + \"&dir=".$_GET['dir']."\""?>;
return false;
}
Постскриптум Как можно больше не JQuery, пожалуйста! Спасибо.
ExecCommand работает с этими элементами, добавленными к любой части документ элемент.
код не хватает document.querySelector("body").appendChild(hiddenItem);
и может быть скрыт после выполнения команды -> hiddenItem.setAttribute("style","display: none");
Других решений пока нет …