document.execCommand 复制命令不起作用或其他解决方案?

2024-01-12

我正在做的是以编程方式从网页中选择所有文本,然后复制它。选择所有适用于execCommand但复制则不然。

这是我的代码:

$.ajax({
    url: $('#url').val(),
    type: 'GET',
    success: function(res) {
        $('#result').html(res.responseText);
        $('#result').fadeIn('fast');


        $('#result').focus();
        $('#result').select();

        document.execCommand('selectall');

        // copy does not work ?
        document.execCommand('copy');

    }
});

这是 JsBin 上的示例 http://jsbin.com/welcome/72426

我还尝试使用闪存解决方案,例如零剪贴板 https://github.com/jonrohan/ZeroClipboard,但是似乎必须按下闪光灯对象/按钮明确地复制我想做的文本zeroclip.setText('whatever'); 无需用户按下按钮。

谁能告诉我如何以编程方式复制文本?


复制命令过去在除 IE 之外的所有浏览器中都受到保护(它在其他浏览器中不起作用)。请求用户使用 Ctrl+C 是一种常见的解决方法。

从 Firefox 41(2015 年 9 月)、Chrome 42(2015 年 4 月)和 Opera 29(2015 年 4 月)开始,这种情况不再是这样,当从某些可信(用户触发)触发时,复制命令在大多数主要浏览器中默认可用。事件,例如响应按钮单击而触发的事件。

The 兼容性表 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand#Browser_Compatibility来自MDN, 和万维网联盟bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=23235提供更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

document.execCommand 复制命令不起作用或其他解决方案? 的相关文章

随机推荐