可重复使用的复制到剪贴板功能

时间:2021-04-02 18:26:10

标签: javascript copy clipboard

我创建了一个可重用的复制函数,该函数适用于具有特定类的任何输入字段,但我能够在输入字段中传递值的唯一方法是将 onclick 事件直接添加到输入字段 {{ 1}},这显然不理想。

当我尝试将文本字段的值传递给函数时,出现错误:onclick="copyIt(this)" 我应该能够弄清楚这一点,但我没有运气。显然/显然我不明白需要如何格式化值才能使其工作,但这就是阻碍。任何见解将不胜感激!

copyIt(e.target.value);

https://codepen.io/NoahBoddy/pen/MWJmgQz

1 个答案:

答案 0 :(得分:1)

您的问题是 text.select() 期望选择一个 NodeElement 而您正在传递文本本身。你不能这样做,所以我已经调整了你的代码来工作。

对 NodeElements 中的 forEach 表示赞赏......我已经完成了最长的时间 Array.from(NodeList) 并且这种方法带来了一些替代见解。谢谢。

const copyIt = function (nodeElement) {
  nodeElement.select();
  document.execCommand("copy");
}

document.querySelectorAll(".copier").forEach((nodeElement) => {
  nodeElement.addEventListener("click", () => {
    copyIt(nodeElement)
  });
});