info.selectionText未定义-chrome扩展名

时间:2019-07-14 02:19:25

标签: javascript google-chrome google-chrome-extension hotkeys

我有一个方便的扩展程序,可用于工作,以使浏览不同的文件/网页更加高效。该扩展程序创建了一个上下文菜单,并突出显示了一些文本,通过将所选文本添加到URL,它使我可以直接跳至该网页。

到目前为止,它确实运行良好,但是我目前正在尝试向此扩展程序添加热键,而且我不确定如何继续。

我尝试使用消息传递,但是无法在该应用程序中使用它。

我能够调用chrome.commands.onCommand并打开一个新标签,但是我无法读取它突出显示的文本。

//background.js
chrome.commands.onCommand.addListener(function(command) {
          if (command == 'funcA'){
              chrome.tabs.create({
                url: "www.company.com/ordernumber/"  + info.selectionText.trim()
                })}
        });

function orders(info,tab) {
  chrome.tabs.create({
    url: "www.company.com/ordernumber/" + info.selectionText.trim()
                      })}

chrome.contextMenus.create({
  title: "Order Number",
  contexts:["selection"],
  onclick: orders
  })




//manifest.JSON
{
    "name": "quickLinks",
    "version": "0.1",
    "manifest_version": 2,
    "icons": {
      "16": "ql.png",
      "48": "ql.png",
      "128": "ql.png"
    },
    "description": "",
    "permissions": [
      "contextMenus"
     ],
    "background": {
      "scripts": ["backgrounds.js"]
    },
    "commands": {
          "funcA": {
            "suggested_key": {
              "default": "Ctrl+Shift+1"
            },
            "description": "Executes Func A"
          }},
    "content_scripts": [
      {
        "matches": ["<all_urls>"],
        "js": ["contentScript.js"]
      }
    ],
    "browser_action": {
      "default_icon": "ql.png",
      "default_popup": "popup/popup.html"
    }

}

上下文菜单按预期方式工作。 热键可以正确触发,但是info.selectionText.trim()将显示为未定义。我认为这是一个范围问题,但我不知道如何解决它,甚至可能解决。

谢谢。 这是我接下来尝试的并得到“错误处理响应:TypeError:无法读取未定义的属性'0'”。

chrome.commands.onCommand.addListener(function(command) {
          if (command == 'funcA'){
            chrome.tabs.executeScript({code: 'getSelection().toString()'}, data => {
              chrome.tabs.create({
                url: "http://www.company.com/orderNumber/" + data[0]
              })})
          }})

0 个答案:

没有答案