是否有必要为chrome扩展设置事件侦听器

时间:2017-01-25 14:59:29

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

我正在审核Chrome扩展程序并遇到了这两个疑问,我想澄清一下。

在我正在审阅的扩展中,我看到“background.js”文件中的一部分代码,其中使用以下代码行将消息传递给内容脚本:

chrome.tabs.query({active: !0, currentWindow: !0}, function (a) {
chrome.tabs.sendMessage(a[0].id, {action: "process_page"}, function (a) {
                       })
                   })
  1. 我的第一个查询是在这里传递了json-ified消息({action:“process_page”})。我无法在消息的代码库中的任何位置找到任何关联的侦听器事件(process_page)。事实上,“process_page”似乎只在整个代码库中存在一次,在background.js文件中也存在。所以,我想知道事件监听器是否对所有chrome.tabs.sendMessage方法都是必需的,或者事件监听器是否是可选的。

  2. 我的第二个问题是 - 来自Google的chrome.tabs文档 - https://developer.chrome.com/extensions/tabs#type-Tab,我明白sendMessage方法的第一个参数对应于标签ID。但是,我想理解为什么它被表示为“a [0] .id”?

  3. 任何明确的指示或解释都会非常有用。

1 个答案:

答案 0 :(得分:0)

  1. 事件监听器是可选的:但是没有监听器,发送的消息将不起作用。

  2. 它表示为a[0].id,因为函数的参数是Tab个对象的数组(请参阅documentation for chrome.tabs.querya[0].id是第一个标签的标签ID在查询返回的数组中。

相关问题