Chrome扩展插件功能?

时间:2013-01-07 19:43:47

标签: google-chrome google-chrome-extension firefox-addon

我正在为Chrome构建扩展程序,为用户提供基本API。我希望其他开发人员能够将自己的功能添加到我的API中。例如,一些开发人员提供了一个新的“插件”(只是JavaScript代码),我希望用户能够将该插件下载到他们的扩展中。

我面临的主要问题是:

  • 如何永久地将新代码加载到扩展程序中?

理想情况下,我想在扩展程序的JavaScript中添加代码,但我无法写入该文件;我的印象是我受JavaScript限制 - 这是真的吗?

虽然我可以动态加载新代码(通过下载一些脚本),但该代码仅适用于当前运行,并且不会永久添加。相反,一旦用户重新加载扩展名,它就会消失。

到目前为止,我能看到的唯一解决方案是创建一个登录系统,我保存每个用户下载的插件,并为他提供强制选项,以便在每次打开扩展程序时加载它们。

这种方法非常混乱且不切实际,因为我不想每次都让用户登录。事实上,我非常希望不使用任何登录系统。

我想要的是类似于GreaseMonkey扩展的功能,它允许用户编写脚本并允许其他用户下载它们。

我显然希望创建一个比GreaseMonkey更小更简单的扩展,但像GreaseMonkey这样的东西或多或少都是我想要的。

有任何想法或建议吗?

1 个答案:

答案 0 :(得分:2)

所有“插件”都是独立的Chrome扩展程序。然后,您可以使用Message Passing向每个已安装的扩展程序发送消息,而插件应该具有类似的代码:

if recieve "some identifying key"
then respond "information about this plugin"

现在您的主扩展程序知道安装了哪些插件,并且可以使用chrome-extension://[extensionID]/file.js"加载其JS文件。

这应该让你开始:)