我需要对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");
据我所知,不可能是开箱即用的。
exportChart()
方法内部发生的事情是,立即创建一个表单,并通过以编程方式触发对此表单的提交,将图表svg发送到服务器。然后,服务器将收到的svg处理为png(或您选择的任何格式),然后将其返回给浏览器。
您看到的弹出窗口要求您“另存为”是浏览器在向其抛出文件时的操作(而不是任何高位图代码)。基本上,返回的png永远不会返回到代码中,而是直接进入浏览器。
但是您可以写custom svg->png server module并在那里做魔术:)
我有一个非常相似的问题,并通过在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 ...]