1

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

2 回答 2

3

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

该方法内部发生的情况exportChart()是,动态创建一个表单,并通过以编程方式触发该表单上的提交,将图表 svg 发送到服务器。服务器依次将 svg 接收到 png (或您可以选择的任何内容)中并将其返回给浏览器。

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

但是,您可以编写您的自定义 svg->png 服务器模块并在那里发挥您的魔力 :)

于 2012-10-22T16:16:57.447 回答
0

我有一个相当相似的问题,并通过在 contextButton 上定义onclick 事件来解决它。仅当您同意丢失上下文菜单中的项目(按文件类型导出)时,这似乎才有可能,这在我的情况下不是问题。在要包含在图表初始构建中的代码下方:

   [... 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 ...]
于 2019-09-29T14:18:02.183 回答