如何从不同来源的 Chrome 扩展程序提供文件?

Posted

技术标签:

【中文标题】如何从不同来源的 Chrome 扩展程序提供文件?【英文标题】:How to serve files from a Chrome extension under different origin? 【发布时间】:2016-02-26 04:40:34 【问题描述】:

我想提供来自不同于 Chrome 扩展程序本身来源的 Chrome 扩展程序的文件。理想情况下,我希望来源是多个并且可以配置。这个想法是,然后我可以将它们加载到 <iframe> 中,并且它们有自己的独立起源。

【问题讨论】:

【参考方案1】:

使用不带allow-same-origin 指令的sandbox(as an iframe attribute 或via the "sandbox" key in the manifest file)。然后该页面将具有唯一的来源(并且它无法访问特定于扩展来源的 API)。

【讨论】:

抱歉,如果我的问题不清楚(我应该更新它吗?),但我想要受控来源。因此,添加到页面的多个 iframes 扩展将共享。 sandbox 的问题在于它具有唯一的来源,并且您不能创建另一个具有相同唯一来源的 iframe @Mitar 这不是真的受支持。你的用例是什么? 我想做一个扩展,允许网络应用程序将一些内容存储到一个特殊的客户端唯一源中,以便他们可以在iframe 中显示它,但应用程序本身不能不再访问内容(因为它来自不同的来源)。这很容易通过使用扩展的来源来完成。但是所有网络应用程序都共享相同的扩展名。我希望每个应用程序都可以有自己的存储内容集来源。 @Mitar 然后,您可以按照我的建议使用沙盒 iframe,并注入一个脚本,该脚本公开一个处理原始特定功能的 API。或者开发一个应用程序并使用<webview>(注意:这仅在应用程序中支持,在扩展程序中不支持)。

以上是关于如何从不同来源的 Chrome 扩展程序提供文件?的主要内容,如果未能解决你的问题,请参考以下文章

Yammer REST API - 如何从不同来源 (CORS) 获取数据?

从不同来源的跨平台音频导入

从不同来源获取时 Expressjs cors 问题

从不同文件发送数据的简单 perl 程序

对于可以从不同来源接收数据的单个对象,我需要啥设计模式?

如何开发Chrome扩展程序