我使用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;
}
});
但我认为它未定义。如何实现所需的输出?
答案 0 :(得分:1)
弹出页面及其脚本仅在显示弹出窗口时存在,因此您无法在其中添加浏览器全局热键的侦听器。
将chrome.commands.onCommand.addListener
放入background or event page并在扩展程序页面之间通过chrome.runtime.sendMessage使用标准通讯。