我试图制作我的第一个Chrome应用,但我遇到了问题。 在我的第一个窗口中,我制作了这个HTML代码。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>Percebe ivair. Estou sempre por cima!</div>
<iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/aFMkXqrKGMY" frameborder="0" allowfullscreen></iframe>
</body>
</html>
&#13;
但是当我尝试打开Chrome应用时,我收到了以下错误消息:
&#34;拒绝框架&#39; https://www.youtube-nocookie.com/embed/aFMkXqrKGMY&#39;因为它违反了以下内容安全政策指令:&#34; frame-src&#39; self&#39; blob:filesystem:data:chrome-extension-resource:&#34;。&#34;
在我的manifest.json中,我尝试了这个:
{ &#34; name&#34;:&#34; Hello World!&#34;, &#34;说明&#34;:&#34;我的第一个Chrome应用。&#34;, &#34; manifest_version&#34;:2, &#34;权限&#34;:[&#34; app.window.alwaysOnTop&#34;,&#34; https://www.youtube-nocookie.com/embed/ *&#34;], &#34; content_security_policy&#34;:&#34; script-src&#39; self&#39; https://www.youtube-nocookie.com; object-src&#39; self&#39;&#34; }
如何在Chrome应用中插入简单的播放器?
谢谢!
答案 0 :(得分:0)
Chrome应用的CSP不允许引用iFrame中的外部资源。这与Chrome扩展程序不同,后者更灵活。
限制如下(根据上面的链接):
- 您无法在Chrome应用页面中使用内联脚本。该 限制禁止块和事件处理程序()。
- 您无法引用任何外部资源 您的应用文件(视频和音频资源除外)。 你无法嵌入 iframe中的外部资源。
- 您不能使用字符串到JavaScript 像eval()和new Function()这样的方法。
您可以查看this page以了解有关这些限制的几种方法的详细信息,但以下是基本概念:
选项1 :您可以使用webview
代替iFrame,iFrame会在单独的流程中运行,从而将外部内容与您的应用数据隔离开来。
选项2 :您可以创建包含YouTube嵌入式脚本的沙盒页面,然后在页面中的iFrame中包含沙盒页面。