可重复使用的复制到剪贴板功能
Reusable Copy To Clipboard Function
我创建了一个可重复使用的复制函数,它适用于具有特定 class 的任何输入字段,但我能够在输入字段中传递值的唯一方法是直接添加 onclick 事件到输入字段 onclick="copyIt(this)"
,这显然不理想。
当我尝试将文本字段的值传递给函数时出现错误:copyIt(e.target.value);
我应该能够解决这个问题,但我没有运气。 obviously/apparently 我不明白需要如何格式化该值才能使其正常工作,但这就是阻碍。任何见解将不胜感激!
const copyIt = function (text) {
text.select();
console.log("Copied to clipboard");
document.execCommand("copy");
}
document.querySelectorAll(".copier").forEach((copied) => {
copied.addEventListener("click", (e) => {
console.log(e.target.value, "event listener attached");
copyIt(e.target.value);
});
});
您的问题是 text.select() 期望 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)
});
});
我创建了一个可重复使用的复制函数,它适用于具有特定 class 的任何输入字段,但我能够在输入字段中传递值的唯一方法是直接添加 onclick 事件到输入字段 onclick="copyIt(this)"
,这显然不理想。
当我尝试将文本字段的值传递给函数时出现错误:copyIt(e.target.value);
我应该能够解决这个问题,但我没有运气。 obviously/apparently 我不明白需要如何格式化该值才能使其正常工作,但这就是阻碍。任何见解将不胜感激!
const copyIt = function (text) {
text.select();
console.log("Copied to clipboard");
document.execCommand("copy");
}
document.querySelectorAll(".copier").forEach((copied) => {
copied.addEventListener("click", (e) => {
console.log(e.target.value, "event listener attached");
copyIt(e.target.value);
});
});
您的问题是 text.select() 期望 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)
});
});