我们正在使用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>
当我们执行此操作时,我们会获得导出的图表 - 但它是在页面加载时创建的原始图表。有趣的是,如果我们单击图例,只有一个系列在图表上可见,然后将其类型从bar更改为散点图,然后导出图表,我们会在图表上显示所有系列,但所有系列都是散点图类型。因此,看起来某些图表更改正在“保留”并通过导出方法发送,但不是全部。
使用的测试路径列表:
我不能够在jsFiddle上重现这一点,但这就是我们的代码看起来只是重要部分:jsFiddle。