Internet explorer 8 IE8中未呈现新窗口高度图表

Internet explorer 8 IE8中未呈现新窗口高度图表,internet-explorer-8,highcharts,Internet Explorer 8,Highcharts,我正在尝试通过JavaScript打印Highcharts图表。其中一个要求是打印必须在单独的窗口中完成,这意味着我不能使用Highcharts附带的.print()函数。因此,我最终做的是克隆highcharts的容器,然后将其发送到新窗口。它适用于Chrome、Firefox、IE9/10,但在IE8中只渲染轴 铬: IE8: 我发现Highcharts有一个类似问题的bug报告: 根据报告,问题是IE8兼容模式,我没有使用。这个问题在IE9/IE10、Chrome或Firefox中不存

我正在尝试通过JavaScript打印Highcharts图表。其中一个要求是打印必须在单独的窗口中完成,这意味着我不能使用Highcharts附带的.print()函数。因此,我最终做的是克隆highcharts的容器,然后将其发送到新窗口。它适用于Chrome、Firefox、IE9/10,但在IE8中只渲染轴

铬:

IE8:

我发现Highcharts有一个类似问题的bug报告:

根据报告,问题是IE8兼容模式,我没有使用。这个问题在IE9/IE10、Chrome或Firefox中不存在

下面是我用来将标记发送到新窗口的代码。”/“打印”只包含两个基本的CSS文件。我不知道为什么事件处理程序会这样附加;我只是被告知,这样做是有原因的,没有任何澄清

var clone = $('#highcharts-demo').clone().get(0);

var params = [
  'width='+screen.width,
  'height='+screen.height
].join(',');

var printWindow = window.open('/print', 'Print', params);
printWindow[printWindow.addEventListener ? 'addEventListener' : 'attachEvent'](
  (printWindow.attachEvent ? 'on' : '') + 'load', function () {
  printWindow.document.body.innerHTML += clone.outerHTML;
  printWindow.document.close();
  printWindow.focus();
}, false);

我认为问题在于jQuery.clone()。不幸的是,我不知道为什么。。然而,以下是可行的解决方案:

var clone = document.getElementById('highcharts-demo');
后来:

printWindow.document.body.innerHTML += clone.innerHTML;

请注意,IE中存在SVG打印错误,可通过以下CSS“修复”:

svg{位置:绝对!重要}

我不知道这与你的具体问题有多大关系,但这个问题是在我为自己的问题寻找解决方案时提出的,CSS就是解决方案