HighCharts导出文件名

mic*_*oon 2 javascript export highcharts

我使用highcharts导出模块将图表导出为pdf.在我的代码中,我创建了一个片段chart对象,可以在使用的不同gui控件上进行操作.它看起来像这样:

options = {
   ...
   ...
   exporting:{
      type: "application/pdf",
      filename: "default",

      buttons:{
        exportButton:{
            menuItems: null,
            onclick:function(){
                var fileName = "AAAA";//it's dynamic in reality.
                alert(options.exporting.filename);//alerts "default"
                options.exporting.filename = fileName;
                alert(options.exporting.filename);//alerts "AAAA"
                this.exportChart();
             }
         },
         printButton: {
             enabled: false
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,只要单击导出按钮,就会将下载的文件命名为,default.pdf同时警报显示属性已更改.

此外,由于第一个警报显示结果default(它不是默认值,chart实际上是它)清楚我正在引用正确的属性,因此不会因为在错误的属性中设置文件名而导致错误.

任何人都可以解释这种情况或建议更改,让我下载动态名称的文件.?

Lin*_*ger 7

您可以更改文件的文件名.这是一个如何实现这一目标的例子.相关代码:

exportButton: {
    menuItems: null,
    onclick: function() {
        chart.exportChart({filename: 'my-png'}, null);
    }
},
Run Code Online (Sandbox Code Playgroud)

这是另一个示例,它显示了在导出和打印期间可以控制的内容.相关代码:

$('#buttonExport').click(function() {
    var e = document.getElementById("ExportOption");
    var ExportAs = e.options[e.selectedIndex].value;   

    if(ExportAs == 'PNG')
    {
        chart.exportChart({type: 'image/png', filename: 'my-png'}, {subtitle: {text:''}});
    }
    if(ExportAs == 'JPEG')
    {
        chart.exportChart({type: 'image/jpeg', filename: 'my-jpg'}, {subtitle: {text:''}});
    }
    if(ExportAs == 'PDF')
    {
        chart.exportChart({type: 'application/pdf', filename: 'my-pdf'}, {subtitle: {text:''}});
    }
    if(ExportAs == 'SVG')
    {
        chart.exportChart({type: 'image/svg+xml', filename: 'my-svg'}, {subtitle: {text:''}});
    }
}); 

$('#buttonPrint').click(function() {
    chart.setTitle(null, { text: ' ' });
    chart.print();
    chart.setTitle(null, { text: 'Click and drag in the plot area to zoom in' });
});
Run Code Online (Sandbox Code Playgroud)