使 execCommand("Copy") 在隐藏的输入标签上工作

Make execCommand("Copy") work on hidden input tags

我目前正在使用 javascript 中硬编码的函数,以便复制标签的自定义地址与预定义的 link。我所做的是制作一个输入类型的文本元素并将其值设置为我想要复制的内容,但事实证明它没有按照我想要的方式工作。按 Ctrl +V 后,它将第二个值粘贴到我设备剪贴板中的最新值。 如何让 execCommand("Copy") 在隐藏的输入标签上工作? (该函数在 img 标签的 onclick 属性上调用)

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;

    }

P.S。请尽可能不jQuery!谢谢。

execCommand 适用于添加到 document 元素任何部分的那些元素。

代码缺失document.querySelector("body").appendChild(hiddenItem);

执行命令后可以隐藏 -> hiddenItem.setAttribute("style","display: none");