通过Chrome扩展程序中的上下文菜单选项复制所选文本

路加

我正在尝试创建一个上下文菜单选项,该选项将一些文本复制到系统剪贴板。

当前,我只是复制硬编码的字符串文字,但是我想知道如何更改它以复制选定的文本。具体来说,我不知道如何正确创建createProperties对象(请参阅底部)

据我了解,这只能通过后台页面完成。

我有以下背景页面:

background.html

<textarea id="temp"></textarea>
<script src="context.js"></script>

context.js 如下:

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.json的如下:

{
    "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对象。

我一直在尝试模仿以下来源:

Chrome扩展程序中按上下文菜单项可以调用内容脚本的方法吗?

http://paul.kinlan.me/chrome-extension-adding-context-menus/

其他一些相关的问题是:

复制到Chrome扩展程序中的剪贴板

如何将文本从Google Chrome扩展程序复制到剪贴板?

罗伯·W

文档中的“ createProperties”是传递给chrome.contextMenus.create方法的字典(即带有“ title”,“ contexts”等的东西)

所述onclick的事件描述chrome.contextMenus.create指出函数接收两个参数。第一个参数(“ info”)是字典,其中包含有关所选文本的信息。第二个参数(“选项卡”)包含有关选项卡的信息(在您的情况下,虽然不需要)。
“信息”字典具有属性“ selectionText”,该属性保存单击上下文菜单项时所选择的文本。可以在您的代码中使用它,如下所示:

function copyToClipboard(info) {
    var tempNode = document.getElementById("temp");
    tempNode.value = info.selectionText; // <-- Selected text
    tempNode.select();
    document.execCommand('copy', false, null);
}

那将解决您的直接问题。
除此之外,可以通过将背景页面转换为事件页面扩展您的扩展程序与后台页面相比,事件页面的主要优点是,扩展程序在后台闲置时不会不必要地使用内存。

// background.js

// Register context menu
chrome.runtime.onInstalled.addListener(function() {
    chrome.contextMenus.create({
        "id": "some id",  // Required for event pages
        "title": "Copy selected text to clipboard",
        "contexts": ["editable"],
        // "onclick" : ...  // Removed in favor of chrome.contextMenus.onClicked
    });

});

// Register a contextmenu click handler.
chrome.contextMenus.onClicked.addListener(copyToClipboard);

这是最小的manifest.json(注意"persistent": false键,它指定您要使用事件页

{
    "manifest_version": 2,

    "name": "Copy selected text to clipboard",
    "version": "1.0",

    "permissions": [
        "contextMenus",
        "clipboardWrite"
     ],

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Chrome扩展程序中,如何在上下文菜单中具有多组单选按钮

来自分类Dev

Chrome扩展程序获取所选文本

来自分类Dev

尝试通过自定义扩展程序从Google Chrome上下文菜单启动JNLP

来自分类Dev

无法在Chrome扩展程序上返回所选文本

来自分类Dev

如何将上下文菜单添加到带有Chrome扩展程序的浏览器操作中?

来自分类Dev

Firefox Developer Edition中的奇怪行为,“检查元素”上下文菜单选项

来自分类Dev

Chrome扩展程序上下文菜单未显示

来自分类Dev

选项(⌥)+可可中的上下文菜单?

来自分类Dev

如何添加上下文菜单选项以在DSL工具中布置图表?

来自分类Dev

通过上下文菜单将所选文件复制到另一个文件夹

来自分类Dev

Chrome扩展程序中的分组上下文菜单项

来自分类Dev

Chrome扩展程序上下文菜单,区分图像和链接事件

来自分类Dev

如何在Chrome扩展程序中动态地向上下文菜单添加选项?

来自分类Dev

Nautilus中的存档管理器应用程序是否有“提取到...”上下文菜单选项?

来自分类Dev

如何在TableView中的所选项目上显示上下文菜单

来自分类Dev

Windows 7中我的Open-With gVim上下文菜单选项在哪里?

来自分类Dev

是否可以在所选目录中添加Windows资源管理器上下文菜单选项以启动命令提示符?

来自分类Dev

Chrome扩展程序中的上下文菜单可创建不需要的副本菜单

来自分类Dev

Nautilus中的存档管理器应用程序是否有“提取到...”上下文菜单选项?

来自分类Dev

Chrome扩展程序-特定页面上的上下文菜单

来自分类Dev

如何将上下文菜单添加到带有Chrome扩展程序的浏览器操作中?

来自分类Dev

如何显示我的Chrome扩展程序创建的上下文菜单选项的键盘快捷键?

来自分类Dev

删除文件,Ubuntu Gnome 16.04中的上下文菜单选项

来自分类Dev

通过上下文菜单将所选文件复制到另一个文件夹

来自分类Dev

如何从上下文菜单中删除“使用Avira扫描所选文件”?

来自分类Dev

在Nautilus por pdf文件中添加上下文菜单选项

来自分类Dev

如何在Chrome扩展程序中动态地向上下文菜单添加选项?

来自分类Dev

Windows 上下文菜单和批处理 -> 编辑所选文件

来自分类Dev

上下文菜单选项在哪里定义?

Related 相关文章

  1. 1

    在Chrome扩展程序中,如何在上下文菜单中具有多组单选按钮

  2. 2

    Chrome扩展程序获取所选文本

  3. 3

    尝试通过自定义扩展程序从Google Chrome上下文菜单启动JNLP

  4. 4

    无法在Chrome扩展程序上返回所选文本

  5. 5

    如何将上下文菜单添加到带有Chrome扩展程序的浏览器操作中?

  6. 6

    Firefox Developer Edition中的奇怪行为,“检查元素”上下文菜单选项

  7. 7

    Chrome扩展程序上下文菜单未显示

  8. 8

    选项(⌥)+可可中的上下文菜单?

  9. 9

    如何添加上下文菜单选项以在DSL工具中布置图表?

  10. 10

    通过上下文菜单将所选文件复制到另一个文件夹

  11. 11

    Chrome扩展程序中的分组上下文菜单项

  12. 12

    Chrome扩展程序上下文菜单,区分图像和链接事件

  13. 13

    如何在Chrome扩展程序中动态地向上下文菜单添加选项?

  14. 14

    Nautilus中的存档管理器应用程序是否有“提取到...”上下文菜单选项?

  15. 15

    如何在TableView中的所选项目上显示上下文菜单

  16. 16

    Windows 7中我的Open-With gVim上下文菜单选项在哪里?

  17. 17

    是否可以在所选目录中添加Windows资源管理器上下文菜单选项以启动命令提示符?

  18. 18

    Chrome扩展程序中的上下文菜单可创建不需要的副本菜单

  19. 19

    Nautilus中的存档管理器应用程序是否有“提取到...”上下文菜单选项?

  20. 20

    Chrome扩展程序-特定页面上的上下文菜单

  21. 21

    如何将上下文菜单添加到带有Chrome扩展程序的浏览器操作中?

  22. 22

    如何显示我的Chrome扩展程序创建的上下文菜单选项的键盘快捷键?

  23. 23

    删除文件,Ubuntu Gnome 16.04中的上下文菜单选项

  24. 24

    通过上下文菜单将所选文件复制到另一个文件夹

  25. 25

    如何从上下文菜单中删除“使用Avira扫描所选文件”?

  26. 26

    在Nautilus por pdf文件中添加上下文菜单选项

  27. 27

    如何在Chrome扩展程序中动态地向上下文菜单添加选项?

  28. 28

    Windows 上下文菜单和批处理 -> 编辑所选文件

  29. 29

    上下文菜单选项在哪里定义?

热门标签

归档