Highchart导出,完成后执行功能

时间:2012-10-22 12:43:58

标签: highcharts

我需要在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");

2 个答案:

答案 0 :(得分:3)

根据我的理解,开箱即用是不可能的。

exportChart()方法内部发生的是,动态创建表单,并通过以编程方式触发此表单上的提交将图表svg发送到服务器。服务器依次将收到的svg处理成png(或者你可能选择的任何东西)并将其返回给浏览器。

当你抛出一个文件时,你看到的弹出窗口要求你“另存为”是浏览器的动作(而不是任何高级代码)。基本上,返回的png永远不会返回到代码,它会直接进入浏览器。

你可以写下你的custom svg->png server module并在那里做你的魔法:)

答案 1 :(得分: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 ...]