Frameworks google chrome扩展-添加模块/插件
我开始为google chrome开发一个扩展,我很快意识到几乎必须要有某种模块化 然而,我不确定最好的方法是什么 理想情况下,插件应该很容易创建和发布/共享,即使对于非专家(给定某种API),所以我宁愿避免使用其他chrome扩展(带有消息传递等) 我已经阅读了相当一部分的文档,到目前为止还没有找到太多有用的信息,所以欢迎任何想法 已更新 对不起,如果我没有尽可能地说清楚。 主要问题是:Frameworks google chrome扩展-添加模块/插件,frameworks,google-chrome-extension,modularity,Frameworks,Google Chrome Extension,Modularity,我开始为google chrome开发一个扩展,我很快意识到几乎必须要有某种模块化 然而,我不确定最好的方法是什么 理想情况下,插件应该很容易创建和发布/共享,即使对于非专家(给定某种API),所以我宁愿避免使用其他chrome扩展(带有消息传递等) 我已经阅读了相当一部分的文档,到目前为止还没有找到太多有用的信息,所以欢迎任何想法 已更新 对不起,如果我没有尽可能地说清楚。 主要问题是: 共享传统代码(“插件”),而不修改/更新扩展 允许使用自定义代码而无需公开托管(私人托管或存储和评估?)
- 在接收脚本请求的后台页面中使用侦听器(URL为x源)
- 在清单(“选项卡”、“http://”)中设置适当的权限
- 使用localStorage进行缓存
- 使用chrome.tabs.executeScript运行代码,就像运行扩展的一部分一样
- 允许用户添加新代码(到本地存储)
- 托管某种“plugins.json”文件(描述版本、url等),以便为所有用户发布新内容
localStorage
(或让用户直接将代码输入本地存储)保存所述代码。然后,您可以在需要时将代码作为内容脚本注入。eval()
是解析以字符串形式存储的js(在localStorage中?)时首先想到的。如果你有一个脚本的url,那么你总是可以从中创建
标记,或者在内容脚本中执行它(有用于此的chrome api)。你可以使用chrome.tabs.executeScript()
而不是eval()
。但是,如果您希望网页的注入内容脚本与您的背景页面通信,则需要进行消息传递: