gpt4 book ai didi

javascript - Manifest_version = 2 且无内联 javascript 的 NaCl 中的模块加载进度事件

转载 作者:行者123 更新时间:2023-11-30 13:16:41 24 4
gpt4 key购买 nike

我根据 this document 将 manifest_version 升级为“2” ,然后惊讶地看到 chrome 出现如下错误:

Refused to execute inline script because it violates the following Content Security Policy directive

虽然很清楚他们为什么要这样做,但我现在不清楚我应该如何管理模块加载 progress events .即使我将其升级到最新的 (dev) pepper 版本,文档仍然推荐使用内联脚本(这显然不起作用)。

看到这个版本翻转并使我的东西完全无效,我有点沮丧(在花了一个周末下午编写一个模块加载进度之后)。

所以,是的......这是为了更大的利益。我明白。但现在我必须有一个独立的 javascript 文件(具有自己的加载范例)并连接到 <embed/>元素及时正确捕捉事件?现在执行此操作的新方法和改进方法是什么?

谁能推荐一个可靠的替代方案来替代这个经过批准的样板文件?

最佳答案

根据documentation for NaCl progress events , 必须按如下方式添加事件监听器:

<div id="listener">
<script type="text/javascript">
document.getElementById('listener').addEventListener('load', function() {
// Example
}, true);
</script>
<embed name="nacl_module" ... type="application/x-nacl" />
</div>

如果内容安全策略 (see also) 禁止,则此操作。只有一种方法可以解决它:将脚本移动到外部文件:

<div id="listener">
<script src="listener-load.js"></script>
<embed name="nacl_module" ... type="application/x-nacl" />
</div>

// listener-load.js:
document.getElementById('listener').addEventListener('load', ..., true);

因为 DOM 的构造在加载外部文件之前会阻塞,所以脚本在 <embed> 之前加载。标签被插入。由于外部文件与扩展一起打包,因此对性能的影响可以忽略不计。

关于javascript - Manifest_version = 2 且无内联 javascript 的 NaCl 中的模块加载进度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com