权限

当在 manifest.json 声明了"activeTab"权限后, 也并不意味着可以随时随地获得此权限. 还需要满足以下条件:

  • 用户执行操作. (Google Chrome 工具栏中的扩展程序图标)
  • 用户操作右键菜单.
  • 用户通过 commands API 执行键盘快捷键.
  • 用户通过多功能框 API 接受建议. (地址栏)

例如, 你创建了一个包含按钮的侧边栏, 你想要在用户点击按钮时截图. 这将不会成功, 因为侧边栏并不在上述条件中. 如果你把按钮移动到右键菜单中, 用户点击右键菜单后截图, 这样会成功.

传递消息

首先, 有两个发送消息的方法: chrome.runtime.sendMessage, chrome.tabs.sendMessage. 你在看文档时可能不会注意到有两个方法.

  • chrome.tabs.sendMessage, 向标签页的content script发送消息.
  • chrome.runtime.sendMessage, 向其他组件或后台脚本发送消息, content script不能收到它发出的消息.
  • 接收消息只需要使用一个方法: chrome.runtime.onMessage.