Chrome extension(扩展程序)三大件的调试

Chrome extension 里脚本主要在三个地方运行:background.js、popup.js、content_script.js,这三者都可以通 Chrome 的“开发者工具”来调试。

  • background.js
    截图20171130101219background.js 运行于整个 Chrome extension 环境。默认设定下,background.js 的生命周期是只要 Chrome 打开,那它就会一直处于运行状态。
  • popup.js
    它的运行环境也是整个 Chrome extension 环境。以 pageaction 为例,你点击图标时 popup 出现,等鼠标点击其它地方,popup 消失,它的生命周期也就结束了。
    可能通过鼠标右键“检查”来打开 console 来调试 popup.js
    20171130103938
  • content_script.js
    它的运行环境只在 tab 里,和用户浏览的网页一样,就像是网页里的 js 一样。你关掉网页,它的生命周期也就结束了。打开“开发者工具”在 Sources 那个面板可以看到 Content scripts
    20171130104419
  • 它们之间如何通信
    如果要向 background.js、popup.js 发消息,注意它们的运行环境是 Chrome 运行环境,所以就是向 chrome.runtime 发消息:
    chrome.runtime.sendMessage(...)
    如果要向 content_script.js 发消息,注意它的运行环境是特定的 tab ,所以就是向 chrome.tabs 发消息
    chrome.tabs.sendMessage(...)
    那怎么接收对方发送的消息呢?
    注意!在 background.js、popup.js 和 content_script.js 里侦听对方发送的消息都是用:
    chrome.runtime.onMessage.addListener(...)
    不存在 chrome.tabs.onMessage 的!

发表评论

电子邮件地址不会被公开。 必填项已用*标注