在按键上的扩展页中插入所选值

时间:2015-08-11 17:53:16

标签: google-chrome-extension

我使用hot-keys文件中的Google commands选项创建了manifest.json

manifest.json

"commands": {
    "name" : {
        "suggested_key": {
             "default": "Alt+N" 
        },
        "description": "Select name"
    },
    "lastname": {
        "suggested_key": {
            "default": "Alt+P"
        },
        "description": "Select Last name"
    }
}

我想按热键(例如name - Alt+N)获取选定文字,并将其显示在popup.html页面。

当我点击带有以下代码的扩展程序时,我可以获得所选文本:

chrome.tabs.executeScript( {
  code: "window.getSelection().toString();"
}, function(selection) {
  document.getElementById("product_name").value = selection[0];
});

我可以使用以下内容在popup.html中插入文字

chrome.commands.onCommand.addListener(function (command) {
    if (command === "name") {
         document.getElementById("name").value = SomeValue;
    } else if (command === "lastname") {
         document.getElementById("last_name").value = SomeValue;
     }
});

我尝试使用以下代码使两者协同工作:

popup.js

chrome.commands.onCommand.addListener(function (command) {
    if (command === "name") {
         var SomeValue;
         SomeValue = window.getSelection().toString();
         document.getElementById("name").value = SomeValue;
    } else if (command === "lastname") {
         document.getElementById("last_name").value = SomeValue;
     }
});

但我认为它未定义。如何实现所需的输出?

1 个答案:

答案 0 :(得分:1)

弹出页面及其脚本仅在显示弹出窗口时存在,因此您无法在其中添加浏览器全局热键的侦听器。

chrome.commands.onCommand.addListener放入background or event page并在扩展程序页面之间通过chrome.runtime.sendMessage使用标准通讯。