Google chrome extension 将超链接复制到剪贴板-生成的字符串不会复制,但会复制新字符串

Google chrome extension 将超链接复制到剪贴板-生成的字符串不会复制,但会复制新字符串,google-chrome-extension,Google Chrome Extension,我经常希望一次保存一整组链接,并将url和标题格式化为单个超链接 我正在开发一个chrome扩展,它将复制格式化的url和标题 manifest.json { 名称:复制选项卡, 版本:0.1, 描述:创建键盘快捷键Ctrl+Shift+C,用于复制选定选项卡的链接, 权限:[ 标签, 剪贴簿, 剪贴簿 ], 背景:{ 坚持:错, 脚本:[jquery.js,background.js] }, 命令:{ 复制选项卡:{ 建议的_键:{default:Ctrl+Shift+C}, 说明:复制所选选

我经常希望一次保存一整组链接,并将url和标题格式化为单个超链接 我正在开发一个chrome扩展,它将复制格式化的url和标题

manifest.json

{ 名称:复制选项卡, 版本:0.1, 描述:创建键盘快捷键Ctrl+Shift+C,用于复制选定选项卡的链接, 权限:[ 标签, 剪贴簿, 剪贴簿 ], 背景:{ 坚持:错, 脚本:[jquery.js,background.js] }, 命令:{ 复制选项卡:{ 建议的_键:{default:Ctrl+Shift+C}, 说明:复制所选选项卡链接 } }, 清单u版本:2 } background.js

chrome.commands.onCommand.addListenerfunctioncommand{ 如果命令==复制选项卡{ //声明文本元素 var text=; //仅在当前窗口中查找突出显示的选项卡 queryInfo=新对象; queryInfo.highlighted=true; queryInfo.currentWindow=true; //获取标签 chrome.tabs.queryqueryInfo,functiontabs{ //循环查看选项卡结果 对于变量i=0;i //将提供的文本复制到剪贴板。 函数copyTextToClipboardtext{ var copyFrom=$; copyFrom.texttext; $'body'.appendcopyFrom; copyFrom.select; document.execCommand'copy'; copyFrom.remove; } 问题:

我有两个问题: 当我从选项卡属性构造链接时,副本实际上不会工作,但是如果我手动指定text=;一切正常。在开发人员工具中,内联工具提示看起来文本格式正确,但局部变量窗口看起来文本变量仍然设置为

第二,当它粘贴的时候,我没有很好的格式

它看起来就像这样:

但我想要的是:


关于这两个问题:

是异步的。如果你不明白这一点,请阅读。解决方案是将CopyText移动到LipboardText;在chrome.tabs.query的回调中。 您正在文本区域上运行execCommand'copy'。结果是,只有纯文本被复制到剪贴板。 假设HTML输入来自受信任的用户,可以使用以下代码将自定义富文本复制到剪贴板:

函数copyTextToClipboardhtml{ var tmpNode=document.createElement'div'; tmpNode.innerHTML=html; document.body.appendChildtmpNode; //备份以前的选择 var selection=window.getSelection; var备份范围; if selection.rangeCount{ backupRange=selection.getRangeAt0.cloneRange; } //复制内容 var copyFrom=document.createRange; copyFrom.selectNodeContentstmpNode selection.removeAllRanges; selection.addRangecopyFrom; document.execCommand'copy'; //清理 tmpNode.parentNode.removeChildtmpNode; //恢复选择 selection=window.getSelection; selection.removeAllRanges; 如果备份范围{ selection.addRangebackupRange; } }