如何在单击时将 div 元素的 background-color 复制到剪贴板?
How to copy the background-color of a div element to the clipboard on click?
基本上就是标题。我有 4 个 div,代表某物的主要 4 种颜色,它们是动态显示的,所以它们会有所不同。我想对它们做的是,当您单击它时将 background-color(十六进制)复制到剪贴板,并显示一条消息,显示“已复制!” 1.5秒后淡出
我建议您展示您尝试过的内容或至少展示您的代码的样子。您可以使用 javascript 中的 .execCommand() 方法(或类似方法)来实现此目的。您很可能会发现此 link 很有帮助。
https://alligator.io/js/copying-to-clipboard/
首先让我们假设 div
有一个 id test
,所以我们可以得到元素。
const el = document.getElementById('test');
您可能想使用 class 名称、标签名称等来获取它,但这完全取决于您。
然后我们得到计算出的背景颜色:
let bgColor = window.getComputedStyle(el).backgroundColor;
现在我们需要创建一个文本。然后 select 文本并将其复制到剪贴板:
let text = document.createElement('textarea');
// We don't want to see it on the page but only use it as a text holder for the moment
text.style.display = 'none';
// Append to document
document.body.appendChild(text);
// Set the background colour to it
text.value = bgColor;
// Select the text
text.select();
// Copy the text we just selected
document.execCommand('copy');
// Remove the textarea we just created
document.body.removeChild(text);
基本上就是标题。我有 4 个 div,代表某物的主要 4 种颜色,它们是动态显示的,所以它们会有所不同。我想对它们做的是,当您单击它时将 background-color(十六进制)复制到剪贴板,并显示一条消息,显示“已复制!” 1.5秒后淡出
我建议您展示您尝试过的内容或至少展示您的代码的样子。您可以使用 javascript 中的 .execCommand() 方法(或类似方法)来实现此目的。您很可能会发现此 link 很有帮助。 https://alligator.io/js/copying-to-clipboard/
首先让我们假设 div
有一个 id test
,所以我们可以得到元素。
const el = document.getElementById('test');
您可能想使用 class 名称、标签名称等来获取它,但这完全取决于您。
然后我们得到计算出的背景颜色:
let bgColor = window.getComputedStyle(el).backgroundColor;
现在我们需要创建一个文本。然后 select 文本并将其复制到剪贴板:
let text = document.createElement('textarea');
// We don't want to see it on the page but only use it as a text holder for the moment
text.style.display = 'none';
// Append to document
document.body.appendChild(text);
// Set the background colour to it
text.value = bgColor;
// Select the text
text.select();
// Copy the text we just selected
document.execCommand('copy');
// Remove the textarea we just created
document.body.removeChild(text);