【发布时间】:2016-02-17 15:57:47
【问题描述】:
我正在尝试以编程方式更改扩展 devtools 的 chrome 扩展中的 pdf 预览页面。
清单
"content_security_policy": "img-src 'self' data; script-src 'self'; object-src 'self'; data-uri 'self'"
当我将src 属性设置为 iframe 时,我可以成功加载 pdf 并且它将动态生成。
<iframe src="data:application/pdf;base64,..."></iframe>
但是,当我对 embed 或 object html 元素尝试相同的操作时,我得到:
<embed src="data:application/pdf;base64,...">
<object data="data:application/pdf;base64,..."></object>
拒绝从 'data:application/pdf;base64,{{data}}' 加载插件数据,因为它违反了以下内容安全策略指令:“object-src 'self'”。
为什么?在 iframe 上重置 src 属性会将焦点放在嵌套的内容窗口上,因此当用户在父窗口中键入时,textarea 会突然变得模糊(这真的很烦人)。我认为使用embed 或object 元素可以缓解嵌套文档问题。
为了让嵌入正常工作,正确的 csp 语法是什么?我正在直接查看w3 文档,它并没有真正的帮助。例如,我在清单中尝试了以下语法:
"content_security_policy": "object-src 'self' data"
...当您尝试刷新 chrome://extensions 中的扩展时会引发错误。
【问题讨论】:
-
这answer 有帮助吗?
标签: javascript iframe google-chrome-extension content-security-policy