我为chrome addon的js提供了以下代码,用于将某些特定数据从某个网页复制到剪贴板(我将编写代码以便稍后从网页获取数据)。
// 1. Create the button
var testButton = document.createElement("button");
testButton.innerHTML = "Copy";
// 2. Append somewhere
var btnPos = document.getElementsByClassName("menu-userdetails")[0];
btnPos.appendChild(testButton);
// 3. Add event handler
testButton.addEventListener ("click", copyToClipboard);
function copyToClipboard() {
var textArea = document.createElement("textarea");
textArea.value = "test copying";
btnPos.appendChild(textArea);
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
document.body.removeChild(textArea);
}
在此代码中,我必须在复制之前将文本区域附加到网页(按钮单击后)。但是我不希望显示textarea我只想复制textarea中的数据而不显示textarea。
答案 0 :(得分:0)
textArea.style.height = "0px";
textArea.style.width = "0px";
textArea.style.opacity = "0";

添加此代码会隐藏文本区域。
但是在我的代码中已经有了更好的解决方案,我只是犯了一点错误。 我写了
document.body.removeChild(textArea);

实际上我不得不写
btnPos.removeChild(textArea);

这会在复制后删除文本区域,速度太快,甚至无法看到文本区域出现和消失。