var $temp = $("<input>");
$("body").append($temp);
$temp.val('123').select();
document.execCommand("copy");
$temp.remove();
此代码有什么问题?应该是对的
对我根本不起作用。
我在这里读了很多线程,这似乎对其他人有用。
我不知道为什么这对我不起作用。在控制台中,我什么也没有。
最佳答案
阅读this question的答案:
所有document.execCommand('copy')调用必须直接作为用户操作的结果发生,例如单击事件处理程序。这是一种防止在用户不期望的时候弄乱用户剪贴板的措施。
这个例子:
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');
<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>
关于javascript - 复制到剪贴板不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44988947/