我一直在尝试将现有网站/应用程序包装到 chrome 打包应用程序中。
它是一个 d3.js 应用程序,通过 d3.csv、d3.json 等异步加载数据文件。
似乎 d3 代码正在做一些(不可修改?)打包应用程序的 CSP 不允许的事情。我想我正在使用的其他一些库也可能会这样做。所以你必须“沙箱”页面/应用程序才能允许这样做。但是,这意味着您不能进行异步调用来获取数据文件。您也不能同步进行 jquery 异步调用。
除了对 chrome 应用程序进行一些特定的更改之外,我没有看到任何其他解决方案,例如将数据文件包装在 javascript 方法中,该方法将数据直接设置为 javascript 变量。
请随时让我知道一个更好的方法来处理这个:)
仅供参考 - 这是您不运行沙盒页面时的错误
拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是以下内容安全策略指令中允许的脚本来源:“default-src 'self' chrome-extension-resource:”。请注意,'script-src' 没有显式设置,因此 'default-src' 用作后备。
这发生在这里,我假设当它试图解析通过异步方法之一加载的数据时:( d3.v3.min.js:3 (anonymous function) 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 u d3.v3.min.js:1)
d3 是(我认为)做一个新的功能或违反 CSP 的东西。