Ajax复制数据值到剪贴板

3
我需要在ajax成功函数中复制数据的值。
$.ajax({
    url: 'images/getDownloadUrl/',
    dataType: 'text',
    async: false,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){
    document.execCommand(data);
    }
});

我应该如何将这个变量的数据复制到剪贴板中呢?如果只是输入execCommand命令,那么这种方法行不通。


1
可能是如何在JavaScript中复制到剪贴板?的重复问题。 - Bernd Strehl
这个ajax调用是如何触发的?浏览器必须能够将execCommand归因于用户可信事件,例如“onClick”。 - bm_i
我找到了这个,但它不是同样的问题,因为我遇到了与ajax相关的问题。 - alonso05
@bm_i 它是通过包含此 AJAX 的 onClick 函数触发的事件。 - alonso05
2个回答

6
你可以像这样将你的数据复制到剪贴板中:
$.ajax({
    url: 'images/getDownloadUrl/',
    dataType: 'text',
    async: false,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function(data){
       let copyFrom = document.createElement("textarea");
        document.body.appendChild(copyFrom);
        copyFrom.textContent = data;
        copyFrom.select();
        document.execCommand("copy");
        copyFrom.remove();
    }
});

0

使用 async: false 对我来说可以工作,但只能工作一次。复制仅在第一次单击执行 ajax 调用的按钮时有效。使用多个按钮也不起作用 - 任何一个按钮上的第一次单击都有效。

使用 async: true 永远不会起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接