拒绝执行内联事件处理程序,因为它违反了CSP。 (SANDBOX)

当我将sandbox放入manifest.json时,我正在开发一个谷歌Chrome 打包应用程序:

  { "manifest_version": 2, "name": "WM32216", "version": "2.1", "minimum_chrome_version": "23", "permissions":["webview", "https://ajax.googleapis.com/*"], "sandbox":{ "pages":["index.html"] }, "app": { "background": { "scripts": ["main.js"] } } } 

我的锚标签上的onclick事件有效,应用程序的流程已完成,除此之外,CSS样式表中的图标无法加载。

我从控制台得到一个error

File not found

但那些只是字体,所以对我很好,

最大的问题是,iframe中的video无法播放,而且我在Font之前得到了额外的错误:

VIDEOJS:错误:(代码:4 MEDIA_ERR_SRC_NOT_SUPPORTED)无法加载媒体,原因是服务器或网络出现故障,或者因为不支持该格式。

不允许加载本地资源:blob:null / b818b32c-b762-4bd9 -…

当我删除manifest.json文件中的沙箱时,一切都很好,控制台中没有关于字体的错误,

但是,当我点击/单击我的锚点标签有一个点击事件来加载js中的新function我得到以下控制台错误

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“default-src’self’blob:filesystem:chrome-extension-resource:”。 要么是’unsafe-inline’关键字,哈希(’sha256 -…’),要么是nonce(’nonce -…’)来启用内联执行。 另请注意,’script-src’未明确设置,因此’default-src’用作后备。

很抱歉很长的细节,

我只是需要帮助,因为我已经在这里呆了3天了。

回答您的非沙箱相关问题:

你的代码中有这样的东西:

  

简而言之,Chrome应用和扩展程序中不允许这样做。

将此更改为以下内容,它将起作用:

  • HTML:

       
  • 的script.js:

     document.getElementById("myButton").addEventListener("click", myFunction); function myFunction(){ console.log('asd'); } 

很长的故事:

在Chrome应用中,内容安全策略不允许内联JavaScript。 因此,您必须将您的javascript放在.js文件中并将其包含在HTML中。

进一步阅读: https : //developer.chrome.com/extensions/contentSecurityPolicy