javascript — заставить execCommand (& quot; копировать & quot;) работать со скрытыми тегами ввода

В настоящее время я работаю с функцией, жестко запрограммированной в 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, пожалуйста! Спасибо.

0

Решение

ExecCommand работает с этими элементами, добавленными к любой части документ элемент.

код не хватает document.querySelector("body").appendChild(hiddenItem);

и может быть скрыт после выполнения команды -> hiddenItem.setAttribute("style","display: none");

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]