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

Javascript document.execCommand复制命令不工作或其他解决方案?,javascript,browser,cross-browser,Javascript,Browser,Cross Browser,我所做的是以编程方式从网页中选择所有文本,然后复制它。“全选”命令可与execCommand一起使用,但“复制”命令不起作用 这是我的密码: $.ajax({ url: $('#url').val(), type: 'GET', success: function(res) { $('#result').html(res.responseText); $('#result').fadeIn('fast'); $('#re

我所做的是以编程方式从网页中选择所有文本,然后复制它。“全选”命令可与
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');

    }
});

我还尝试过使用flash解决方案,例如,但是似乎必须显式地按下flash对象/按钮来复制文本,而我想做的是
zeroclip.setText('whatever')而无需用户按下按钮


谁能告诉我如何通过编程复制文本

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

从Firefox 41(2015年9月)、Chrome 42(2015年4月)和Opera 29(2015年4月)开始,在大多数主要浏览器中,当由某些受信任(用户触发)事件触发时,复制命令在默认情况下不再可用,例如,点击按钮会触发什么

来自MDN的,
W3C提供了进一步的信息。

是的,但我自己不想按
Ctrl+C
,在没有提升权限的情况下(如本回答中提到的
execCommand
),寻找解决方案以编程方式实现这一点是不可能的,因为允许任意剪贴板注入被视为安全漏洞(“剪贴板中毒”)。我正在与浏览器供应商合作,至少在现代evergreen浏览器中启用“点击复制”,以便最终淘汰ZeroClipboard(或将其用作旧浏览器的多边形填充)@JamesM.Greene,你能链接到你向浏览器供应商提交的任何bug吗?@JeffreyYasskin现在它只是作为公共WebApps工作组剪贴板API规范的bug提交的(在我们的邮件列表讨论后由规范的编辑提交):不幸的是,大多数浏览器供应商可能会拒绝错误报告来实现此功能,直到规范错误得到解决,并且此功能成为活动规范的一部分,并且编辑器还无法找到它。:(也许,您可以做一些我在这里提到的事情: