我正在审核Chrome扩展程序并遇到了这两个疑问,我想澄清一下。
在我正在审阅的扩展中,我看到“background.js”文件中的一部分代码,其中使用以下代码行将消息传递给内容脚本:
chrome.tabs.query({active: !0, currentWindow: !0}, function (a) {
chrome.tabs.sendMessage(a[0].id, {action: "process_page"}, function (a) {
})
})
我的第一个查询是在这里传递了json-ified消息({action:“process_page”})。我无法在消息的代码库中的任何位置找到任何关联的侦听器事件(process_page)。事实上,“process_page”似乎只在整个代码库中存在一次,在background.js文件中也存在。所以,我想知道事件监听器是否对所有chrome.tabs.sendMessage方法都是必需的,或者事件监听器是否是可选的。
我的第二个问题是 - 来自Google的chrome.tabs文档 - https://developer.chrome.com/extensions/tabs#type-Tab,我明白sendMessage方法的第一个参数对应于标签ID。但是,我想理解为什么它被表示为“a [0] .id”?
任何明确的指示或解释都会非常有用。
答案 0 :(得分:0)
事件监听器是可选的:但是没有监听器,发送的消息将不起作用。
它表示为a[0].id
,因为函数的参数是Tab
个对象的数组(请参阅documentation for chrome.tabs.query
。a[0].id
是第一个标签的标签ID在查询返回的数组中。