0

我正在使用 Highcharts 将数据绘制为不同的图表。

如您所知,如果我在 HTML 文档中添加 exporting.js 文件,

然后它将在 Highcharts 画布的右上角显示一个小按钮

当前的问题发生在我使用智能手机时。

当我尝试导出当前图表时,当前浏览器窗口关闭。

我可以下载文件,但之前的窗口不见了。

如何修改 Highcharts?

当我单击其中一个导出选项时,我想打开新窗口。

提前致谢。

4

2 回答 2

1

我在 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/

于 2013-04-15T11:26:23.863 回答
1

从 Highcharts 3.0.8 (2014-01-09) 开始,您可以将目标设置为选项,因此您不需要插入式修复。

将目标指定为exporting.formAttributes的一部分,如下所示:

    exporting: {
        formAttributes: {
            target: '_blank'
        }
    }

现场演示http://jsfiddle.net/highcharts/dWfv5/4/

于 2014-05-30T07:10:57.833 回答