Highcharts 11.3.0及以上版本wrap扩展修改SVG desc标签失效求助
解决Highcharts 11.3.0+中修改SVG desc标签内容的问题
你的代码失效是因为Highcharts 11.3.0版本重构了SVGRenderer的内部DOM结构,原来依赖children[0]定位desc元素的方式不再可靠,同时直接修改innerHTML也可能和框架的DOM管理逻辑冲突。
修复后的Wrap代码
直接通过选择器定位desc元素,并用textContent修改内容(比innerHTML更安全,避免破坏SVG结构):
Highcharts.wrap(Highcharts.SVGRenderer.prototype, 'init', function(proceed) { // 执行原init方法 proceed.apply(this, Array.prototype.slice.call(arguments, 1)); // 精准定位desc标签 const descEl = this.box.querySelector('desc'); if (descEl) { descEl.textContent = 'my content'; } });
注:修正了你原代码中的拼写错误(Highgarts→Highcharts,proptype→prototype)和语法缺失(arguments.slice后缺少闭合括号)。
更推荐的官方API方式
如果你的需求是设置SVG的描述内容,更建议使用Highcharts内置的无障碍配置,不需要通过wrap修改内部DOM,兼容性更强:
Highcharts.setOptions({ accessibility: { description: 'my content' } });
这种方式会自动生成符合规范的desc标签,且版本升级时无需担心内部结构变化。
内容的提问来源于stack exchange,提问作者anil kumar Reddy
相关产品推荐
相关产品推荐

