Highcharts 更新到 9 后,在图像中使用“:data”引用制作 SVG

Eul*_*gel 5 javascript svg image highcharts

这篇文章是针对那些在升级到 Highcharts 9 后遇到与我相同问题的人的,而不是问题。
问题如下:我有一些包含图像的 highcharts 标签。该图像的来源为"data:image/svg+xml",之后带有一些编码的 SVG,并且在更新之前它可以正常工作。然而,在迁移到 Highcharts 9 后,这些项目不再存在,因为整个src属性已从图像中删除。

起初我开始研究渲染方法,但很快意识到这不是正确的方法。因此,经过一天的疯狂奔波并试图通过改变我们引入这些 SVG 的方式(但失败了)来使其工作,第二天早上我查看了变更说明并发现了这一点:

在插入 DOM 之前,通过允许列表过滤所有 HTML 配置字符串和抽象语法树,从而提高安全性。( https://www.highcharts.com/blog/changelog/ )

所以这让我思考,也许这与为什么整个src属性已从图像中删除有关,当然,确实如此!因此,进一步查看更新说明,我发现我们可以设置要过滤的内容(https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#filtering)。整个解决方案归结为在根级别添加这一行:

Highcharts.AST.allowedReferences.push('data:');
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力!只要确保将它添加到最顶层,这样它就不会被多次调用 - 这会给你留下大量的“data:”标签。

我希望这篇文章能够减少其他人的调查时间——如果有的话,我的调查时间肯定也会减少。感谢您的阅读并祝您编码愉快!:)