我正在使用 Highcharts 将数据绘制为不同的图表。
如您所知,如果我在 HTML 文档中添加 exporting.js 文件,
然后它将在 Highcharts 画布的右上角显示一个小按钮
当前的问题发生在我使用智能手机时。
当我尝试导出当前图表时,当前浏览器窗口关闭。
我可以下载文件,但之前的窗口不见了。
如何修改 Highcharts?
当我单击其中一个导出选项时,我想打开新窗口。
提前致谢。
我正在使用 Highcharts 将数据绘制为不同的图表。
如您所知,如果我在 HTML 文档中添加 exporting.js 文件,
然后它将在 Highcharts 画布的右上角显示一个小按钮
当前的问题发生在我使用智能手机时。
当我尝试导出当前图表时,当前浏览器窗口关闭。
我可以下载文件,但之前的窗口不见了。
如何修改 Highcharts?
当我单击其中一个导出选项时,我想打开新窗口。
提前致谢。
我在 iOS 设备上注意到了这个问题。但是,有一个非常简单的解决方法。默认情况下,highcharts 创建隐藏<form>
元素并将数据提交到导出服务器。我们可以在这里做的是指定表单的目标属性。
因此,这是一个覆盖默认 Highcharts 导出模块的插入式修复(只需将其放在 exporting.js 之后)
Highcharts.post = function (url, data) {
var createElement = Highcharts.createElement,
discardElement = Highcharts.discardElement,
name,
form;
// create the form
form = createElement('form', {
method: 'post',
action: url,
enctype: 'multipart/form-data',
target: '_blank'
}, {
display: 'none'
}, document.body);
// add the data
for (name in data) {
createElement('input', {
type: 'hidden',
name: name,
value: data[name]
}, null, form);
}
// submit
form.submit();
// clean up
discardElement(form);
};
在这里你可以找到一个工作演示:http: //jsfiddle.net/dWfv5/
从 Highcharts 3.0.8 (2014-01-09) 开始,您可以将目标设置为选项,因此您不需要插入式修复。
将目标指定为exporting.formAttributes的一部分,如下所示:
exporting: {
formAttributes: {
target: '_blank'
}
}