应该在何时何地调用MessagePassing API方法?

时间:2013-08-28 15:53:28

标签: google-chrome google-chrome-extension local-storage options

我正在尝试在内容脚本中访问localStorage,因此我使用Message Passing(manifest v2)。但我对一件事并不是那么清楚:在哪里&应该何时调用chrome.extension.onMessage(在我的options.js中)和chrome.extension.sendMessage(在contentscript.js中)?

对我来说,我使用jQuery并将它们包装在$(document).ready(function() { //... }中。但是当选项页面和注入的页面同时打开时,扩展只会在没有异常的情况下运行,否则会产生例外情况,例如

*Port error: Could not establish connection. Receiving end does not exist.*

我搜索Stack Overflow一段时间后发现有些人使用background_page,但我想我只需要一个选项页面,而不是后台页面。背景html / js是否真的有必要,选项页面应该一起使用它们?

1 个答案:

答案 0 :(得分:0)

选项页面中的脚本仅在选项页面运行时才处于活动状态。因此,当选项页面关闭时,它将无法接收消息。

您需要使用background page。选项页面和后台页面使用相同的localStorage,因此您可以在后台页面中访问localStorage而不会出现任何问题。