Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么document.execCommand(“copy”命令)不';在我的chrome扩展的内容脚本中不工作?_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 为什么document.execCommand(“copy”命令)不';在我的chrome扩展的内容脚本中不工作?

Javascript 为什么document.execCommand(“copy”命令)不';在我的chrome扩展的内容脚本中不工作?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我想从我正在创建的chrome扩展插件中向clipborad写入一些数据。 在清单文件中,我为剪贴簿读和剪贴簿写授予了权限。 我使用我发现的这个函数 但它不起作用。似乎“document.execCommand('copy');”无法工作 我在内容脚本中编写所有这些代码 thx 舱单: { "manifest_version":2, "name":"easyCopy", "description":"just a small toll", "version":"

我想从我正在创建的chrome扩展插件中向clipborad写入一些数据。 在清单文件中,我为剪贴簿读和剪贴簿写授予了权限。

我使用我发现的这个函数

但它不起作用。似乎“document.execCommand('copy');”无法工作

我在内容脚本中编写所有这些代码

thx 舱单:

{
    "manifest_version":2,

    "name":"easyCopy",
    "description":"just a small toll",
    "version":"1.0.0",

    "permissions":[
        "clipboardWrite", "http://*/*", "clipboardRead"
    ],

    "content_scripts":[
        {
            "matches":["http://*/*"],
            "js":["jquery-1.9.1.min.js", "main_feature.js"]
        }
    ],

    "background":{
        "persistent":false,
        "page":"background.html"
    }
}
main_feature.js:

copyOrderId();
function copyOrderId() {
    $(".order-num").click(function () {
        var curOrderNum = $(this).text();
        copyTextToClipboard(curOrderNum);
//        chrome.extension.sendMessage({method:"copy", content:curOrderNum}, function (response) {
//            clog(response);
//        });
    });


}

function copyTextToClipboard(text) {
    var copyFrom = $('<textarea/>');
    copyFrom.text(text);
    $('body').append(copyFrom);
    copyFrom.select();
    document.execCommand('copy', true);
    copyFrom.remove();

}
function clog(message) {
    console.log(message);
}
copyOrderId();
函数copyOrderId(){
$(“.order num”)。单击(函数(){
var curOrderNum=$(this.text();
copyTextToClipboard(curOrderNum);
//sendMessage({method:“copy”,内容:curOrderNum},函数(响应){
//阻塞(反应);
//        });
});
}
功能copyTextToClipboard(文本){
var copyFrom=$('');
copyFrom.text(text);
$('body').append(copyFrom);
copyFrom.select();
document.execCommand('copy',true);
copyFrom.remove();
}
功能阻塞(消息){
控制台日志(消息);
}

background.html只是一个带有基本html正文的空白页。

谢谢大家,我最后使用了以下内容:

document.execCommand
无法在内容脚本中工作。 相反,我将数据发送到后台页面,然后运行“copyTextToClipboard”功能

请注意,您必须将JavaScript放入单个.js文件中,而不是将其与background.html混合


此外,文本区域必须具有
id
class
属性。

共享完整的相关代码,包括清单etcthx,我编辑了我的问题并共享了所有问题。您能进一步澄清吗?如果我在基于内容脚本的js文件中定义了一个隐藏字段,我可以在后台访问它的值以进行复制吗?@volatir3:对不起,我没有看到你的评论。在背景中定义一个隐藏字段,然后可以复制它。如果要复制内容脚本中的任何内容,必须使用chrome的MessagePassing api将数据发送到后台。chrome 39中已修复此错误-请参阅