javascript – 为什么document.execCommand(“copy”)在我的chrome扩展的内容脚本中不起作用?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么document.execCommand(“copy”)在我的chrome扩展的内容脚本中不起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why is document.execCommand(“paste”) not working in Google Chrome?6个
我想从我正在创建的chrome扩展中将一些数据写入clipborad.
在清单文件中,我赋予了clipboardRead和clipboardWrite的权限.

我使用这个功能,我找到了here

但它不起作用.好像是“document.execCommand(‘copy’);”无法工作.

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

谢谢
表现:

  1. {
  2. "manifest_version":2,"name":"easyCopy","description":"just a small toll","version":"1.0.0","permissions":[
  3. "clipboardWrite","http://*/*","clipboardRead"
  4. ],"content_scripts":[
  5. {
  6. "matches":["http://*/*"],"js":["jquery-1.9.1.min.js","main_feature.js"]
  7. }
  8. ],"background":{
  9. "persistent":false,"page":"background.html"
  10. }
  11. }

main_feature.js:

  1. copyOrderId();
  2. function copyOrderId() {
  3. $(".order-num").click(function () {
  4. var curOrderNum = $(this).text();
  5. copyTextToClipboard(curOrderNum);
  6. // chrome.extension.sendMessage({method:"copy",content:curOrderNum},function (response) {
  7. // clog(response);
  8. // });
  9. });
  10.  
  11.  
  12. }
  13.  
  14. function copyTextToClipboard(text) {
  15. var copyFrom = $('<textarea/>');
  16. copyFrom.text(text);
  17. $('body').append(copyFrom);
  18. copyFrom.select();
  19. document.execCommand('copy',true);
  20. copyFrom.remove();
  21.  
  22. }
  23. function clog(message) {
  24. console.log(message);
  25. }

background.html只是一个基本的html主体的空白页面.

解决方法

谢谢大家,我最终使用了这个:

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

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

此外,textarea必须具有id或class属性.

猜你在找的JavaScript相关文章