Chrome扩展程序:用户更改/重新加载页面时如何不丢失扩展程序状态

时间:2018-11-27 02:04:11

标签: google-chrome-extension

我目前正在开发扩展程序,该扩展程序分为以下几个部分: -后台脚本(Chrome background.js -内容脚本(Chrome content-script.js) -弹出脚本(popup.js,并从iFrame加载) -iframe.html(用户激活扩展程序时将加载的iframe)

效果很好,除了当用户更改页面或在选项卡中重新加载页面时,我丢失了所有设置/上下文(在弹出脚本中用于在iframe中显示信息)。

从技术上讲,我想隔离每个选项卡的扩展名(每个选项卡可以具有自己的配置),但是当用户在同一选项卡中导航时,应保留上下文。

问题是:实现这一目标的最佳方法是什么?

我正在考虑将所有上下文持久保存在内容脚本中,并在触发事件chrome.tabs.onUpdated时重新加载它。这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

我建议您阅读有关chrome.storage的信息。您可以在此处存储数据,后台脚本和内容脚本都可以访问它。 可能需要chrome.runtime.sendMessagechrome.runtime.onMessage才能在背景和内容之间进行对话。每次内容脚本在选项卡中运行时,它都可以请求后台,以确定该选项卡是否具有一些现有数据。