我想将卡号复制到剪贴板中,以便可以将其粘贴到记事本中。我从互联网上得到的代码,如果在浏览器的开发工具栏中尝试一下,效果很好。但是,如果我将该代码添加到我的Javascript文件中并运行该项目,那么它将无法工作。代码如下:
$.ajax({
type: "POST",
url: '@Url.Action("CopyToClipboard", "MyAccountSurface")',
data: {
controlId: controlId
},
dataType: 'json',
success: function(data) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val(data.CardNumber).select();
document.execCommand("copy");
$temp.remove();
alert('copied successfully');
}
});发布于 2017-11-21 12:51:10
由于这不是用户交互,它将不起作用。
我们可以实现的变通方法是,只要鼠标在用户想要复制数据的区域中输入,就从ajax调用中获取数据,并将数据放在某个文本区或输入框中。
而且,在单击事件时,我们可以复制剪贴板中的数据。
//按钮的mouseenter事件
$("#jq-copy-txt").on('mouseenter', function() {
$.ajax({
url: 'url',
method: 'GET'
}).then(function(data) {
let copyFrom = document.getElementById("jq-cpy-txt-area");
document.body.appendChild(copyFrom);
copyFrom .textContent = data.title;
});
});//用户触发的点击事件
$("#jq-copy-txt").on('click', function() {
var fn = function() {
let copyFrom = document.getElementsByTagName("textarea")[0];
copyFrom.select();
document.execCommand("copy");
};
setTimeout(fn, 1000);});https://stackoverflow.com/questions/41361081
复制相似问题