Javascript 通过Chrome扩展中的关联菜单选项复制选定文本
我试图创建一个上下文菜单选项,将一些文本复制到系统剪贴板 目前,我只是复制一个硬编码的字符串文字,但我想知道如何将其更改为复制选定的文本。具体来说,我不知道如何正确地创建Javascript 通过Chrome扩展中的关联菜单选项复制选定文本,javascript,google-chrome,google-chrome-extension,contextmenu,clipboard-interaction,Javascript,Google Chrome,Google Chrome Extension,Contextmenu,Clipboard Interaction,我试图创建一个上下文菜单选项,将一些文本复制到系统剪贴板 目前,我只是复制一个硬编码的字符串文字,但我想知道如何将其更改为复制选定的文本。具体来说,我不知道如何正确地创建createProperties对象(见下图) 我的理解是,这只能通过背景页来完成 我有以下背景页: background.html <textarea id="temp"></textarea> <script src="context.js"></script> 我的man
createProperties
对象(见下图)
我的理解是,这只能通过背景页来完成
我有以下背景页:
background.html
<textarea id="temp"></textarea>
<script src="context.js"></script>
我的
manifest.json
如下所示:
chrome.contextMenus.create({
"title": "Freedom",
"contexts": ["editable"],
"onclick" : copyToClipboard
});
function copyToClipboard()
{
var tempNode = document.getElementById("temp");
tempNode.value = "some text";
tempNode.select();
var status = document.execCommand('copy',false,null);
if(status) alert('successful');
else alert('unsuccessful');
}
{
"manifest_version": 2,
"name": "Freedom",
"description": "Provides users useful and fun context menu options that they can access from anywhere.",
"version": "1.0",
"permissions": [
"contextMenus",
"clipboardWrite"
],
"background": {
"page": "background.html"
}
}
我显然是错误地声明了chrome.contextMenus.create()函数。我已经阅读了文档,我只能想象我没有正确地创建
createProperties
对象
我一直试图模仿这些来源:
其他一些相关问题包括:
文档中是传递给方法的字典(即带有“标题”、“上下文”等的内容)
状态为函数接收两个参数。第一个参数(“info”)是一个字典,其中包含有关所选文本的信息。第二个参数(“tab”)包含关于该选项卡的信息(在您的情况下,您不需要)。“信息”字典有一个属性“selectionText”,它在单击上下文菜单项时保存所选文本。这可以在您的代码中使用,如下所示:
chrome.contextMenus.create({
"title": "Freedom",
"contexts": ["editable"],
"onclick" : copyToClipboard
});
function copyToClipboard()
{
var tempNode = document.getElementById("temp");
tempNode.value = "some text";
tempNode.select();
var status = document.execCommand('copy',false,null);
if(status) alert('successful');
else alert('unsuccessful');
}
{
"manifest_version": 2,
"name": "Freedom",
"description": "Provides users useful and fun context menu options that they can access from anywhere.",
"version": "1.0",
"permissions": [
"contextMenus",
"clipboardWrite"
],
"background": {
"page": "background.html"
}
}
功能copyToClipboard(信息){
var tempNode=document.getElementById(“temp”);
tempNode.value=info.selectionText;//您正在调用函数,而不是传递函数引用。仔细阅读的文档,您的函数签名已完全关闭。您是否可以提供一个示例,我一直在阅读并重新阅读该页,但我感到困惑。尽管我看到了很多示例,但这些示例与我所做的相同。它们过时了吗?你的意思是我没有正确地创建createProperties对象吗?这里的问题包括两部分:1)调用函数而不是传递函数引用(关于这个问题,堆栈溢出上有数百个问题,搜索,你会发现…)和2)onclick处理程序与API描述不匹配。您能否先链接到您提到的一些“过时”示例?也许示例没有过时,但您对此有误解。现在编辑即可。