0

我们正在使用 HighStock 1.3.1 和 Java+PhantomJS 导出服务器(使用与 HighStock 相同版本的导出器)。我们在页面上创建了一些图表。我们允许用户显示/隐藏系列或更改系列的类型(条形/线/散点图)。我们有一个菜单,可让用户选择要制作的导出类型:

    <select size="4"
       name="ctl00$Main_content$ctlMainResultsGraph$lstExportOptions"
       id="ctl00_Main_content_ctlMainResultsGraph_lstExportOptions"
       class="chartMainmenu_body"
       onchange="
        var chart = $('#chartMain').highcharts();
        switch (this.value) {
         case 'JPEG': chart.exportChart({type: 'image/jpeg'}); break;
         case 'PNG': chart.exportChart({type: 'image/png'}); break;
         case 'SVG': chart.exportChart({type: 'image/svg+xml'}); break;
         case 'PDF': chart.exportChart({type: 'application/pdf'}); break;
        }"
      style="text-align:left;font-weight:bold;">
        <option value="JPEG">JPEG</option>
        <option value="PNG">PNG</option>
        <option value="SVG">SVG</option>
        <option value="PDF">PDF</option>
    </select>

当我们执行此操作时,我们确实得到了一个导出的图表 - 但是它是在页面加载时创建的原始图表。有趣的是,如果我们单击图例,使得图表上只有一个系列可见,然后将其类型从条形更改为散点,然后导出图表,我们会在图表上显示所有系列,但都是散点类型。因此,看起来某些图表更改正在“保留”并通过导出方法发送出去,但不是全部。

使用的测试路径列表:

  1. 初始加载 - 导出(任何选项)和图表看起来像页面上的内容。
  2. 取消选中图例中的一项,以便图表上仅显示 3 项。导出图表,它看起来就像路径 1 中的图像。
  3. 转到单个系列并将图表类型更改为分散,以便图表中仅显示一个系列。导出图表,图像看起来像路径 1 中的内容,只有所有系列都是散点类型。

无法在 jsFiddle 上重现这一点,但这就是我们的代码看起来只剩下重要部分的样子:jsFiddle

4

0 回答 0