我正在为Chrome构建扩展程序,为用户提供基本API。我希望其他开发人员能够将自己的功能添加到我的API中。例如,一些开发人员提供了一个新的“插件”(只是JavaScript代码),我希望用户能够将该插件下载到他们的扩展中。
我面临的主要问题是:
理想情况下,我想在扩展程序的JavaScript中添加代码,但我无法写入该文件;我的印象是我受JavaScript限制 - 这是真的吗?
虽然我可以动态加载新代码(通过下载一些脚本),但该代码仅适用于当前运行,并且不会永久添加。相反,一旦用户重新加载扩展名,它就会消失。
到目前为止,我能看到的唯一解决方案是创建一个登录系统,我保存每个用户下载的插件,并为他提供强制选项,以便在每次打开扩展程序时加载它们。
这种方法非常混乱且不切实际,因为我不想每次都让用户登录。事实上,我非常希望不使用任何登录系统。
我想要的是类似于GreaseMonkey扩展的功能,它允许用户编写脚本并允许其他用户下载它们。
我显然希望创建一个比GreaseMonkey更小更简单的扩展,但像GreaseMonkey这样的东西或多或少都是我想要的。
有任何想法或建议吗?
答案 0 :(得分:2)
所有“插件”都是独立的Chrome扩展程序。然后,您可以使用Message Passing向每个已安装的扩展程序发送消息,而插件应该具有类似的代码:
if recieve "some identifying key"
then respond "information about this plugin"
现在您的主扩展程序知道安装了哪些插件,并且可以使用chrome-extension://[extensionID]/file.js"
加载其JS文件。
这应该让你开始:)