在 Chrome 中收到错误“此文档需要“TrustedHTML”分配”

Azi*_*yed 17 jquery google-chrome angularjs webpack

我正在开发一个运行 Angularjs 1.4 的应用程序。今天早上,当我将 Chrome 浏览器更新为Version 83.0.4103.61

似乎它不再接受innerHTML。

在此输入图像描述

编辑:我发现这尤其与我们的 CSP 政策有关require-trusted-types-for 'script';

随着新的 chrome 更新,它似乎变得更加严格。

小智 13

@Doubidou 方法使用default,这将禁用 TrustedHTML 分配 (CSP) 保护。

以下方式不会禁用保护。我们正在创建一个信任策略,该策略将返回与输入相同的结果。

escapeHTMLPolicy = trustedTypes.createPolicy("forceInner", {
    createHTML: (to_escape) => to_escape
})
Run Code Online (Sandbox Code Playgroud)

然后只需在输入任何内容之前准备好 html 代码即可:

my_element.innerHTML = escapeHTMLPolicy.createHTML("<h1>your_html</h1>");
Run Code Online (Sandbox Code Playgroud)

来源: https: //developer.mozilla.org/en-US/docs/Web/API/TrustedHTML