gpt4 book ai didi

javascript - 将参数传递到 chrome.commands

转载 作者:行者123 更新时间:2023-12-03 11:48:31 27 4
gpt4 key购买 nike

我正在尝试制作一个简单的扩展,将所选单词添加到数组中并显示它。

一切正常,但我现在尝试添加键盘快捷键来执行与右键单击 > 单击我的扩展程序图标相同的操作。

我不明白如何使用 chrome.commands 函数将选定的文本添加到数组中。

这是我的背景页面中的内容:

var Words = []
...
function addToArray(info, tab) {
var text = info.selectionText;
Words.push(text);
}

和我的 chrome.commads 监听器:

 chrome.commands.onCommand.addListener(function(info, tab) {
addToArray(info, tab); // When I press keyboard shortcut, the word 'undefined' is added to the array...?
});

当我按下快捷键时,出现了问题,因为我的数组中出现“未定义”,但我不知道是什么!后台页面控制台没有任何错误。

有人可以帮我解决这个问题吗?谢谢。

显然,chrome.commands 监听器正在工作,因为我未定义,而且,如果我将 alert('test') 放入其中,警报就会显示。

最佳答案

简而言之,你不能。

the documentation 中所述,onCommand的回调只获取触发的命令名称。

因此,要获得选择,您需要以某种方式从监听器中自行查询:

chrome.commands.onCommand.addListener(function(command) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
var tab = tabs[0]; // Got the tab
// execute a content script to get the selection, for instance
// You will need the "activeTab" permission
chrome.tabs.executeScript(
tab.id,
{code: "getSelection().toString();"},
function(results){
Words.push(results[0]);
}
);
});
});

关于javascript - 将参数传递到 chrome.commands,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com