4

我正在做的是以编程方式从网页中选择所有文本,然后复制它。全选适用,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 的示例

我也尝试使用诸如ZeroClipboard之类的 flash 解决方案,但是似乎必须明确地按下他们的 flash 对象/按钮来复制文本,而我想在zeroclip.setText('whatever'); 没有用户按下按钮的情况下这样做。

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

4

1 回答 1

5

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

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

MDN的兼容性表和 W3C错误提供了更多信息。

于 2013-01-10T08:35:15.677 回答