ChartJS响应式打印调整大小-在Firefox / IE11 / Edge中不起作用

时间:2018-10-11 07:49:43

标签: javascript chart.js

使用以下代码,我设法使ChartJS在打印页面出现之前在Chrome上正确调整大小;

function beforePrint () {
  for (const id in Chart.instances) {
    Chart.instances[id].resize()
  }
}

if (window.matchMedia) {
  let mediaQueryList = window.matchMedia('print')
  mediaQueryList.addListener((mql) => {
    if (mql.matches) {
      beforePrint()
    }
  })
}

window.onbeforeprint = beforePrint

不幸的是,此代码不适用于Firefox / IE11 / Edge。在所有浏览器上都正确触发了beforePrint()函数,但看来resize()在打印实际发生之前没有足够的时间来完成大小调整,因此它被切断了。图表应该占据页面的100%宽度,但是这是在Edge上发生的事情(仅显示了一半的图表): enter image description here

是否可以将打印延迟到调整大小之前?还是一种更早调用resize()方法的方法?还是其他解决方法?

谢谢!

0 个答案:

没有答案