复制到剪贴板而不附加textarea

时间:2018-02-16 07:23:35

标签: javascript google-chrome-extension

我为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。

1 个答案:

答案 0 :(得分:0)



textArea.style.height = "0px";
textArea.style.width = "0px";
textArea.style.opacity = "0";




添加此代码会隐藏文本区域。

但是在我的代码中已经有了更好的解决方案,我只是犯了一点错误。 我写了



document.body.removeChild(textArea);




实际上我不得不写



btnPos.removeChild(textArea);




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