我们正在使用 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>
当我们执行此操作时,我们确实得到了一个导出的图表 - 但是它是在页面加载时创建的原始图表。有趣的是,如果我们单击图例,使得图表上只有一个系列可见,然后将其类型从条形更改为散点,然后导出图表,我们会在图表上显示所有系列,但都是散点类型。因此,看起来某些图表更改正在“保留”并通过导出方法发送出去,但不是全部。
使用的测试路径列表:
- 初始加载 - 导出(任何选项)和图表看起来像页面上的内容。
- 取消选中图例中的一项,以便图表上仅显示 3 项。导出图表,它看起来就像路径 1 中的图像。
- 转到单个系列并将图表类型更改为分散,以便图表中仅显示一个系列。导出图表,图像看起来像路径 1 中的内容,只有所有系列都是散点类型。
我无法在 jsFiddle 上重现这一点,但这就是我们的代码看起来只剩下重要部分的样子:jsFiddle。