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