参见英文答案 >
Why is document.execCommand(“paste”) not working in Google Chrome?6个
我想从我正在创建的chrome扩展中将一些数据写入clipborad.
在清单文件中,我赋予了clipboardRead和clipboardWrite的权限.
我想从我正在创建的chrome扩展中将一些数据写入clipborad.
在清单文件中,我赋予了clipboardRead和clipboardWrite的权限.
我使用这个功能,我找到了here
但它不起作用.好像是“document.execCommand(‘copy’);”无法工作.
我在内容脚本中写下所有这些代码.
谢谢
表现:
{
"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);
}
background.html只是一个基本的html主体的空白页面.
解决方法
谢谢大家,我最终使用了这个:
document.execCommand无法在内容脚本中使用.
相反,我将数据发送到后台页面,然后运行“copyTextToClipboard”功能.
请注意,您必须将JavaScript放入单个.js文件中,而不是将其与background.html混合使用.
此外,textarea必须具有id或class属性.