4

我想让我的 Chrome 扩展程序的弹出页面显示一个谷歌图表,显示用户阅读新闻习惯的信息。我注意到(特别是这里:Chrome 扩展程序不起作用),这个问题是 Chrome 扩展程序不允许内联脚本,这使得包括使用 Google Chart 所需的 API 文件变得复杂。有没有解决的办法?有没有什么地方可以下载整个 API 以简单地包含在我的扩展中?

4

2 回答 2

5

原则上,扩展可以使用违反 CSP 的库。但是,这需要额外的跳跃:沙盒

  "sandbox": {
    "pages": [
      "sandbox.html"
    ]
    "content_security_policy":
        "sandbox allow-scripts; script-src 'self' 'unsafe-eval' https://www.google.com/jsapi"
  ],

它是专门为解决这个问题而创建的。请参阅“在 Chrome 扩展程序中使用 eval。安全。” 实施细节指南。

您需要在普通脚本和沙箱之间传达结果,因为沙箱页面没有 Chrome API 访问权限。

于 2015-04-17T14:18:49.597 回答
1

如果文档位于 Chrome 扩展程序的上下文中,则不能使用 Google Charts,因为它违反了内联 JavaScript 规则。但是,您可以将 iframe 放入引用远程资源的扩展弹出窗口中。例如,如果以下代码段在您的弹出窗口中:

<iframe src="https://mycoolextension.com/user/12345"></iframe>

然后,您可以在地址https://mycoolextension.com/user/12345上使用 Google Charts 获得应用程序。如果要将图表与扩展程序的数据集成,则需要将参数添加到图表 iframe 的地址,或者实施内容脚本以将值发送到 iframe。

于 2013-03-16T03:40:29.210 回答