canvas.toDataURL(),canvas有宽和高,生成的dataUrl是空的“data:,”

新手上路,请多包涵
我是用的dom-to-image为了实现将页面很长(带滚动)的一个表格生成图片下载,现在遇到的问题就是这个dom节点高有5万多像素的时候,canvas.toDataURL生成的dataUrl是空的,我在本地新建了一个同样大小的canvas去toDataURL又是可以的,求大佬指点

断点调试图如下:
image.png

阅读 7.2k
2 个回答

每个浏览器平台对 canvas 像素大小都有限制,超过这些限制就会导致画布无法使用。
你在本地新建的5万高的canvas没问题猜测是因为你新建的是空白的或者纯色的canvas。
你可以参考这个 stackoverflow 上的答案:https://stackoverflow.com/que...

可以参考下面表格里的具体限制范围,可能与你的实际情况有偏差,因为像素限制和你的内存硬件大小也有关

Browser (OS) Max Width Max Height Max Area (Test Size)
Chrome 70 (Mac, Win*) 32,767 32,767 268,435,456 (16,384 x 16,384)
Edge 17 * 16,384 16,384 268,435,456 (16,384 x 16,384)
Firefox 63 (Mac, Win*) 32,767 32,767 124,992,400 (11,180 x 11,180)
IE 11 * 16,384 16,384 67,108,864 (8,192 x 8,192)
IE 9 - 10 * 8,192 8,192 67,108,864 (8,192 x 8,192)
Safari 7 - 12 4,194,303 8,388,607 268,435,456 (16,384 x 16,384)

也许是表格的内容太多了吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏