复制到剪贴板不起作用javascript

时间:2017-07-08 17:28:51

标签: javascript jquery

var $temp = $("<input>");
$("body").append($temp);
$temp.val('123').select();
document.execCommand("copy");
$temp.remove();

这段代码有什么问题?应该是正确的

对我来说根本不起作用。

我在这里阅读了很多帖子,这似乎适用于其他人。

我不知道为什么这对我不起作用。在控制台我一无所获。

1 个答案:

答案 0 :(得分:2)

阅读this question的答案:

  

所有document.execCommand(&#39; copy&#39;)调用都必须作为用户操作的直接结果进行,例如:点击事件处理程序这是一种措施,可以防止用户剪贴板在他们不期望的情况下弄乱。

示例:

&#13;
&#13;
function copyToClipBoard(txt) {
    try {
        var $temp = $("<input>");
        $("body").append($temp);
        $temp.val(txt).select();
        var retVal = document.execCommand("copy");
        console.log('Copy to clipboard returns: ' + retVal);
        $temp.remove();
    } catch (err) {
        console.log('Error while copying to clipboard: ' + err);
    }
}

$('button').on('click', function (e) {
    copyToClipBoard('123');
});


copyToClipBoard('123');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div style="display:inline-block;">
    <button style="vertical-align:top;">Copy To ClipBoard</button>
    <textarea class="js-test-textarea" cols="35" rows="4">Try pasting into here to see what you have on your clipboard:
  </textarea>
</div>
&#13;
&#13;
&#13;