在直接的jQuery中,我可以做类似的事情
$('#myCollapsible').on('click', 'hidden.bs.collapse', function () {
// do something…
})
Run Code Online (Sandbox Code Playgroud)
但在React中有没有"正确"的方法呢?如果以上是要走的路,我应该在哪里放置该事件处理程序?请注意,我没有使用react-bootstrap插件.
我有一个包含以下指令的元标记:
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'; script-src 'self' 'sha256-s5EeESrvuQPpk2bpz5I3zn/R8Au2DYB1Z+YUH9p0fUE=' 'sha256-PYYfGnkbZ44B9ZBpgv8NbP3MXT560LMfrDSas2BveJo=';">
Run Code Online (Sandbox Code Playgroud)
然后我在页面下方有 2 个内联脚本,每个脚本都应与策略中生成的 shas 之一匹配。
在 Chrome 和 Firefox 中,我没有收到任何抱怨,我的脚本按预期运行。
在 Safari 版本 11.0.3 (13604.5.6) 中,出现以下错误:
Refused to execute a script because its hash, its nonce, or 'unsafe-inline' does not appear in the script-src directive of the Content Security Policy
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么!
不幸的是,我无法生成包含其中问题的最小可重复存储库 - 较小的示例在 Safari 中对我有用,所以它让我相信它与我的应用程序中的某些特定内容有关,可能与我拥有的第二件事有关下面试过。
任何帮助将非常感激!
是否支持哈希?
根据这篇 Stack Overflow 帖子和Safari 发行说明,支持哈希的 CSP 2.0 已在 Safari 10 中实现
正确的字符集?
以前,我看到了一些问题,因为我正在计算基于 UTF-8 字符集的哈希值,但是在没有适当的字符集元标记的情况下将 JS 输出到浏览器。当浏览器尝试计算它们时,我的 JS …