首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >剪贴板复制在jquery ajax成功方法中不起作用

剪贴板复制在jquery ajax成功方法中不起作用
EN

Stack Overflow用户
提问于 2016-12-28 19:25:21
回答 7查看 8.1K关注 0票数 4

我想将卡号复制到剪贴板中,以便可以将其粘贴到记事本中。我从互联网上得到的代码,如果在浏览器的开发工具栏中尝试一下,效果很好。但是,如果我将该代码添加到我的Javascript文件中并运行该项目,那么它将无法工作。代码如下:

代码语言: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');
  }
});
EN

Stack Overflow用户

发布于 2017-11-21 12:51:10

由于这不是用户交互,它将不起作用。

我们可以实现的变通方法是,只要鼠标在用户想要复制数据的区域中输入,就从ajax调用中获取数据,并将数据放在某个文本区或输入框中。

而且,在单击事件时,我们可以复制剪贴板中的数据。

//按钮的mouseenter事件

代码语言:javascript
运行
复制
$("#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;
    });
});

//用户触发的点击事件

代码语言:javascript
运行
复制
$("#jq-copy-txt").on('click', function() {

   var fn = function() {
      let copyFrom = document.getElementsByTagName("textarea")[0];
      copyFrom.select();
      document.execCommand("copy");
    };
    setTimeout(fn, 1000);});
票数 0
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41361081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档