javascript - 当 document.body 长度超过 30,000 像素时,HTML2CANVAS 不会渲染它

标签 javascript html html2canvas

有办法解决这个问题吗?当 document.body 高度超过 30,000 像素时,html2canvas 不会呈现。或者我可以只渲染当前视口(viewport)吗?用户可以看到什么?

请帮忙。

最佳答案

为了能够仅渲染当前事件视口(viewport),您可以使用 type:'view' 选项初始化 html2canvas

示例:

 var body = document.getElementsByTagName("body")[0]; 
    html2canvas(body, {
        type: 'view',
        onrendered: function(canvas) {
            //implementation
        }
    })

我使用 html2canvas 版本 0.5.0-beta4 测试了上述代码,它仅正确捕获当前视口(viewport),即使您滚动到页面底部

关于3万像素,可以查看answer @kaiido 提到

关于javascript - 当 document.body 长度超过 30,000 像素时,HTML2CANVAS 不会渲染它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881957/

相关文章:

javascript - 如何自定义数据表中的表?

javascript - 鼠标监听器位于某个对象(如 swf)上时?

javascript - 有什么方法可以将 c3.js 生成的图形转换为 png,并在客户端将 Png 转换为 Pdf

javascript - 为什么这种将 html 表单信息下载为 string/.txt 文件的方法会从文件中删除所有换行符?

javascript - Ext.tip 中的强制高度和滚动条(Extjs 3.4)

javascript - html2canvas当body高度超过30000像素时返回无效图片

javascript - 将谷歌地图保存为图像 - 使用javascript(能够截屏)

javascript - 关于设置 something.prototype.__proto__ 的困惑

javascript - 删除已获取的消息时出现问题

javascript - 遍历 sibling 子类