我需要在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");
答案 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 ...]