Highcharts上下文菜单导致图表仅在Chrome上从打印屏幕返回时消失

时间:2014-09-22 19:18:55

标签: google-chrome charts highcharts contextmenu corrupt

我们使用Highcharts 4.0.4和PHP作为服务器端脚本。页面上有多个图表,每个图表都有其打印/保存选项的上下文菜单。

上下文菜单工作正常,但当控件从打印屏幕返回到页面时,相应的图表大小已损坏或完全消失。

奇怪的是,这种不良行为只能在Chrome上观察到,但不能在IE上观察到。

fiddle证明了这种行为。

Code along with fiddle

非常感谢任何有关如何解决此问题的帮助或指导。

1 个答案:

答案 0 :(得分:1)

highcharts中的Defaulty所有元素都隐藏在当前图表之外。您可以包装导出函数并关闭此部分代码。

(function (H) {
    H.wrap(H.Chart.prototype, 'print', function (proceed) {
        var chart = this,
            container = chart.container,
            origDisplay = [],
            win = window,
            origParent = container.parentNode,
            body = document.body,
            childNodes = body.childNodes;

        if (chart.isPrinting) { // block the button while in printing mode
            return;
        }

        chart.isPrinting = true;


        // print
        win.focus(); // #1510
        win.print();

        // allow the browser to prepare before reverting
        setTimeout(function () {

            // put the chart back in
            origParent.appendChild(container);


            chart.isPrinting = false;

        }, 1000);

    });
})(Highcharts);

示例:http://jsfiddle.net/ND5xf/5/