需要在highchart工具提示中绑定事件。我在High chart -> tooltip -> formatter下提供了一些HTML代码片段,如-x1c 0d1x这与CSP标签-“Unsafe-inline”一起工作很好,这是不推荐的。如果没有CSP标记,则会出现以下错误
谁来帮帮忙
gjmwrych1#
内容安全策略为内联脚本代码提供了四个选项:1.使用'unsafe-inline':将允许此脚本,但也允许所有其他脚本,包括XSS1.使用随机数:不适用于属性,仅适用于脚本/样式标记。1.使用脚本的散列(如果在内联事件属性上使用,则包括'unsafe-hashes'):由于item.companyId,您的脚本是动态的,并且您需要所有companyId的散列。1.将脚本移动到从允许位置加载的单独的.js文件中。你最好的选择是选择4。对元素使用addEventListener('click',someFunction),并让someFunction()方法读取包含companyId的属性。如果通过将item.companyId移动到脚本可以访问的另一个属性中来使代码静态化,则还可以使用选项3。
23c0lvtd2#
您可以将onclick属性添加到允许的AST属性中,如下所示:
onclick
Highcharts.AST.allowedAttributes.push('onclick');
Demo:https://stackblitz.com/edit/highcharts-angular-line-avclsa有关Highcharts安全性的更多信息:https://www.highcharts.com/docs/chart-concepts/security
2条答案
按热度按时间gjmwrych1#
内容安全策略为内联脚本代码提供了四个选项:
1.使用'unsafe-inline':将允许此脚本,但也允许所有其他脚本,包括XSS
1.使用随机数:不适用于属性,仅适用于脚本/样式标记。
1.使用脚本的散列(如果在内联事件属性上使用,则包括'unsafe-hashes'):由于item.companyId,您的脚本是动态的,并且您需要所有companyId的散列。
1.将脚本移动到从允许位置加载的单独的.js文件中。
你最好的选择是选择4。对元素使用addEventListener('click',someFunction),并让someFunction()方法读取包含companyId的属性。
如果通过将item.companyId移动到脚本可以访问的另一个属性中来使代码静态化,则还可以使用选项3。
23c0lvtd2#
您可以将
onclick
属性添加到允许的AST属性中,如下所示:Demo:https://stackblitz.com/edit/highcharts-angular-line-avclsa
有关Highcharts安全性的更多信息:https://www.highcharts.com/docs/chart-concepts/security