chrome.runtime.onMessage.addListener毎回使うたびに躓いてる気がする
— 感謝カンゲキ雨嵐 (@pastak) 2014, 8月 12
全く学習能力がない
— 感謝カンゲキ雨嵐 (@pastak) 2014, 8月 12
というわけで覚えてるうちにメモ書き。
メモ書きと言っても大したことではなくて、 Message Passing - Google Chrome をちゃんと読めば書いてあるので、こっちをちゃんと読むべきって感じがする。
background (event page) -> popup
background (event page) -> popup
content script -> background, popup
sender.js
chrome.runtime.sendMessage(extensionId,messageObj,responseCallback)
receiver.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){ // write some code sendResponse(responseObj); })
background (event page) -> content script
background.js
chrome.tabs.sendMessage(tabId, messageObj, responseCallback)
content.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){ // write some code sendResponse(responseObj); })
要するに基本はメッセージを受ける側は常にchrome.runtime.onMessage.addListener
でcallbackを設定しておけば良い。
送る側はchrome.runtime.sendMessage
を使えば良いけど、content scriptにメッセージを送りたい時はchrome.tabs.sendMessage
を使うということ。