You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Highcharts Treemap 9.3.0 离线导出PDF失败 其他导出格式运行正常

问题根因

你遇到的是Highcharts 9.3.0版本的已知内置bug,Treemap系列的离线导出PDF逻辑存在缺陷:offline-exporting.js在处理Treemap特有的数据标签DOM节点时,节点销毁逻辑判断错误,会尝试移除不属于当前父节点的子元素,因此触发Failed to execute 'removeChild' on 'Node'异常。
PNG、JPEG、SVG离线导出不会触发该缺陷逻辑,在线导出是提交到Highcharts官方服务端处理,不受前端版本bug影响,所以这几个场景功能正常。

解决方案

提供三个可落地的方案,可根据业务场景选择:

方案1:升级Highcharts版本(最推荐)

该bug已在Highcharts 9.3.2及后续稳定版本中被官方修复,直接升级依赖到9.3.2或更高版本即可解决问题,无需修改现有业务代码。

方案2:版本兼容补丁(无法升级时使用)

如果业务当前暂不支持升级Highcharts版本,可以在图表初始化前添加如下补丁代码,临时规避导出时的节点销毁错误:

// Highcharts 9.3.0 Treemap离线导出PDF兼容补丁
Highcharts.wrap(Highcharts.Series.types.treemap.prototype, 'destroy', function (originMethod) {
  // 导出过程中跳过Treemap的节点销毁逻辑,避免触发DOM异常
  if (this.chart.isExporting) return
  originMethod.apply(this, Array.from(arguments).slice(1))
})

该补丁只会在导出PDF的临时过程中生效,不会影响图表的正常渲染和交互。

方案3:仅PDF格式走在线导出(无需修改核心逻辑)

如果不想调整依赖或添加补丁,可以修改导出配置,仅将PDF格式的导出切到官方在线服务,其他格式继续使用离线导出:

Highcharts.chart('container', {
  // 原有配置保持不变
  exporting: {
    menuItemDefinitions: {
      downloadPDF: {
        onclick: function () {
          this.exportChart({ type: 'application/pdf' }, null, null, { fallbackToExportServer: true })
        }
      }
    }
  },
  // 其余原有配置...
})

内容的提问来源于stack exchange,提问作者Amanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:36:02