【问题标题】:Latest version of HTML2CANVAS does not work in Chrome, Firefox最新版本的 HTML2CANVAS 在 Chrome、Firefox 中不起作用
【发布时间】:2023-04-07 18:40:01
【问题描述】:

我已将 html2canvas 从 0.4 更新到 1.0.0,并使用下面的函数截屏。

该功能和 html2canvas 不起作用,我收到以下错误。

我该如何解决?

icefaces-compat.js.jsf?ln=ice.compat&v=3_3_0_130416:1 2ms html2canvas: onrendered 选项已弃用,html2canvas 返回一个 Promise 画布作为值

function screenshotChrome() {
    var target = $(document.body);
    html2canvas(target, {
        useCORS: true,
        onrendered: function (canvas) {
            canvas.UniversalToBlob(function (blob) {
                    saveAs(blob, "aScreenshot.png");
                },
                "image/png", 1);
        }
    });
}

【问题讨论】:

  • 正如警告所暗示的...html2canvas() 现在返回一个承诺。例如html2canvas(...).then(canvas => ...)
  • 猜测人们不再搜索错误消息github.com/MrRio/jsPDF/issues/1610

标签: javascript html2canvas


【解决方案1】:

我不熟悉该库,但错误表明此版本使用Promise 而不是使用onrendered 回调选项。因此,它(可能)像这样使用:

html2canvas(target, {
  useCORS: true
})
  .then(function (canvas) {
    canvas.UniversalToBlob(function (blob) {
      saveAs(blob, "aScreenshot.png");
    }, "image/png", 1);
  })
  .catch(function (err) { console.log(err); });

【讨论】:

  • 我认为您的建议是一个很好的解决方案,但我无法加载图片进行截图。事件 {isTrusted: true, type: "error", target: img, currentTarget: null, eventPhase: 0, ...}气泡:false cancelBubble:false可取消:false组成:false currentTarget:null defaultPrevented:false eventPhase:0 isTrusted:true路径 : (6) [img, form#mainForm.iceFrm, body#_t4, html, document, undefined] returnValue : true srcElement : img target : img timeStamp : 52486.20000004303 type : "error" proto :事件
  • @Yamur 不幸的是,我对图书馆知之甚少。如果您在问题中发布整个事件(包括最后的事件原型并展开省略号),它可能会提供一些背景信息,我会尽力提供帮助,但没有保证。
  • 通过catch的错误是Chrome错误是:TypeError: canvas.UniversalToBlob is not a function
  • 我改成.toBlob后开始正常工作,但问题是画面不太好。
  • 您认为 CSS 无法显示正确设计的问题是什么?
猜你喜欢
  • 2023-03-09
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2019-09-25
  • 2020-12-22
  • 2016-10-13
  • 1970-01-01
  • 2017-01-03
相关资源
最近更新 更多