Highchart导出,完成后执行功能

问题描述 投票:1回答:2

我需要对Highchart图的png文件进行一些后期处理。如何确定何时完成导出?我尝试附加一个函数,但是它从未被调用:

console.log("Saving chart...");
chart.exportChart({
  type    : "application/png",
  filename: "tmp_chart_filename"
 },
 function(data) {
   console.log("Export done, Data: " + data); // Not called.
})
console.log("Out");
highcharts
2个回答
3
投票

据我所知,不可能是开箱即用的。

exportChart()方法内部发生的事情是,立即创建一个表单,并通过以编程方式触发对此表单的提交,将图表svg发送到服务器。然后,服务器将收到的svg处理为png(或您选择的任何格式),然后将其返回给浏览器。

您看到的弹出窗口要求您“另存为”是浏览器在向其抛出文件时的操作(而不是任何高位图代码)。基本上,返回的png永远不会返回到代码中,而是直接进入浏览器。

但是您可以写custom svg->png server module并在那里做魔术:)


0
投票

我有一个非常相似的问题,并通过在contextButton上定义onclick event来解决。仅当您确定可以丢失上下文菜单中的项目(按文件类型导出)时,这才可能出现,对于我而言这不是问题。在要包含在图表初始建筑物中的代码下面:

   [... your Highcharts chart setup ...],

   exporting: {
        buttons: {
             contextButton: {
                  menuItem: null, // You'll lose your menu items here
                  onclick: function(event) {
                       yourFunctionBeforeExport();
                       this.exportChart();
                       yourFunctionAfterExport();
                  }
             }
        }
  }

  [... rest of the Highcharts chart setup ...]
© www.soinside.com 2019 - 2024. All rights reserved.