Pastalablog in はてな

時代はブログ! 日記もあるよ→http://pastak-diary.hatenadiary.com

Chrome Extensionでcontent scriptとメッセージパッシングを実装するときの覚書

というわけで覚えてるうちにメモ書き。

メモ書きと言っても大したことではなくて、 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を使うということ。