我在審查chrome擴展,並遇到了這兩個我想澄清的疑惑。是否有必要爲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」?
任何明確的指針或解釋將非常有幫助。
查找鉻.runtime.onMessage,chrome.runtime.onConnect和已棄用的前任chrome.extension.onRequest。顯然,擴展處理任何消息,無論其內容如何。 – wOxxOm
@wOxxOm感謝您的回覆。請問您能幫我理解您的意思「顯然,擴展程序處理任何消息,而不管其內容」。 – mbvee
U嗯,它就是這個意思。擴展可能根本不在乎消息的實際內容,而是在收到消息的真實內容或消息的發送者上做某事,或者這個代碼可能是剩餘的,並且什麼也不做。 – wOxxOm