var $temp = $("<input>");
$("body").append($temp);
$temp.val('123').select();
document.execCommand("copy");
$temp.remove();
这段代码有什么问题?应该是正确的
对我来说根本不起作用。
我在这里阅读了很多帖子,这似乎适用于其他人。
我不知道为什么这对我不起作用。在控制台我一无所获。
答案 0 :(得分:2)
阅读this question的答案:
所有document.execCommand(&#39; copy&#39;)调用都必须作为用户操作的直接结果进行,例如:点击事件处理程序这是一种措施,可以防止用户剪贴板在他们不期望的情况下弄乱。
示例:
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;