如何让html2canvas捕抓超出滚动条的部分。

设置了allowTaint : false没有效果,有网友提议先将要截图的部分拷贝到body下方进行隐藏然后再进行捕抓,想请教大神除此之外是否还有更简便的技巧呢?

阅读 13.2k
2 个回答

改下源码:
主要是让用户调用时能够自定义需要截取Dom对象的宽和高

return renderDocument(node.ownerDocument, options, node.ownerDocument.defaultView.innerWidth, node.ownerDocument.defaultView.innerHeight, index).then(function(canvas) {
        if (typeof(options.onrendered) === "function") {
            log("options.onrendered is deprecated, html2canvas returns a Promise containing the canvas");
            options.onrendered(canvas);
        }
        return canvas;
    });

改成

   //2016-02-18修改源码,解决BUG 对于部分不能截屏不能全屏添加自定义宽高的参数以支持
    var width = options.width != null ? options.width : node.ownerDocument.defaultView.innerWidth;
    var height = options.height != null ? options.height : node.ownerDocument.defaultView.innerHeight;
    return renderDocument(node.ownerDocument, options, width, height, index).then(function (canvas) {
        if (typeof(options.onrendered) === "function") {
            log("options.onrendered is deprecated, html2canvas returns a Promise containing the canvas");
            options.onrendered(canvas);
        }
        return canvas;
    });

参考

新手上路,请多包涵

调用的时候,是这样的, 不写type不生效

html2canvas(panel, {
   type: 'view',
   height: $('#t-report').outerHeight() + 20,
   onrendered: function(canvas) {
      let canvasData = canvas.toDataURL();
      console.log(canvasData);
   }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题