我有一个方便的扩展程序,可用于工作,以使浏览不同的文件/网页更加高效。该扩展程序创建了一个上下文菜单,并突出显示了一些文本,通过将所选文本添加到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]
})})
}})