【问题标题】:Chrome Extension Plugin Ability?Chrome 扩展插件能力?
【发布时间】:2013-01-07 19:43:47
【问题描述】:

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

我面临的主要问题是:

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

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

虽然我也许可以动态加载新代码(通过下载一些脚本),但该代码只会在当前运行时保留,不会永久添加。相反,一旦用户重新加载扩展程序,它就会消失。

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

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

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

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

有什么想法或建议吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    这应该让你开始:)

    【讨论】:

    • 我喜欢这个想法,它非常聪明,但是如果用户想要 5 个新插件,他需要在他的 Chrome 上安装 5 个新扩展,这让我很“烦恼”..我不喜欢那样如果我是用户
    • 您可以执行类似html5rocks.com/en/tutorials/file/dndfiles 的操作 - 将本地文件上传到您的扩展程序并保存。但老实说,扩展只是一种更简洁的方式,用户可以轻松添加/删除/禁用它们。为什么要重新发明轮子?
    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 2013-12-01
    • 2013-11-15
    • 2011-07-16
    • 1970-01-01
    • 2015-01-07
    相关资源
    最近更新 更多