我的网页上放置了一个 Chart.js javascript 图表 ( https://www.chartjs.org/ )。
这个基于 javascript 的图表位于 Canvas 元素内,其 ID 为:chart-0
<canvas id="chart-0" height="380px"></canvas>
该canvas元素被放置在ID为“Chart0”的绝对div元素内,该绝对div元素已被放置在ID为“PrintArea”的父/相对div元素内。
当用户单击“打印”按钮时,我编写的 JavaScript 代码会打印出 div 元素“PrintArea”及其内容。
我正在使用 javascript 函数:
window.print();
Run Code Online (Sandbox Code Playgroud)
打印包含画布元素“chart-0”的“PrintArea”div元素,因为这样,它可以打印出Chart.js javascript图表以及“PrintArea”div内的所有其他html内容。
这个网页工作正常,在过去 4 年里打印网页的一部分(“PrintArea”div)没有任何问题。
但最近,当用户单击打印按钮时,网络浏览器会打印出“PrintArea”div 内容,并打印出其后的 715 个空白网页。Chrome 和 Edge 浏览器都会出现这种情况。
我可以看到,问题是由 Chart.js 画布元素引起的,因为如果我从网页中删除这个 Chart.js 画布元素 - “chart-0”,那么 Web 浏览器只会打印出“PrintArea”的内容没有任何错误。
那么,...我该如何修复这个错误?看起来我创建的包含 Chart.js 的任何网页现在都会导致此类问题 - 打印出数百个空白页面,无论我使用 Web 浏览器的默认打印菜单还是 JavaScript 打印功能。
请帮忙。
更新: 下面显示的乔纳森的答案解决了问题!谢谢你,