我一直在玩现有的网站/应用程序包装到Chrome打包的应用程序中。
这是一个d3.js应用程序,它通过d3.csv,d3.json等异步加载数据文件。
似乎d3代码正在做一些包装应用程序的(不可修改的?)CSP不允许的东西。我想我使用的其他一些库也可以这样做。所以你必须" sandbox"页面/应用程序允许这样做。但是,这意味着您无法进行异步调用来获取数据文件。您也无法同步进行jquery异步调用。
除了针对Chrome应用程序进行某些更改之外,我没有看到任何其他解决方案,例如使用javascript方法包装数据文件,该方法将数据直接设置为javascript变量。
请随时告诉我更好的解决方法:)
仅供参考 - 如果您没有运行沙盒页面,则会出现错误
拒绝将字符串评估为JavaScript,因为' unsafe-eval'以下内容安全策略指令中不允许使用脚本来源:" default-src' self'铬扩展资源:&#34 ;.请注意' script-src'没有明确设置,所以' default-src'用作后备。
这发生在这里,我假设当它试图解析通过其中一个异步方法加载的数据时: (d3.v3.min.js:3 (匿名函数)d3.v3.min.js:3 e.parseRows d3.v3.min.js:3 e.parse d3.v3.min.js:3 r d3.v3.min.js:3 你d3.v3.min.js:1)
d3(我认为)正在做一个违反CSP的新功能或其他东西。