Chrome扩展弹出窗口中的Google Chart?

时间:2013-03-11 21:19:59

标签: javascript google-chrome google-chrome-extension google-visualization

我希望Chrome扩展程序的弹出页面显示一个Google图表,其中显示有关用户新闻阅读习惯的信息。我注意到(特别是在这里:Chrome extension doesn't work),问题是Chrome扩展程序不允许使用内联脚本,这会使包含必要的API文件以使用Google图表变得复杂。有没有解决的办法?在某些地方我可以下载整个API,只需包含在我的扩展程序中吗?

2 个答案:

答案 0 :(得分:3)

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

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

专门为解决此问题而创建。有关实施详情,请参阅"Using eval in Chrome Extensions. Safely."指南。

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

答案 1 :(得分:1)

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

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

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