我有一个关于HTML画布的问题,我很难让它工作,它在五月份工作得很好,是什么导致画布不再工作了?一个新的帆布版本存在吗?这是五月的好工作,我在九月试过了,它停止工作了。

$('#download').click(function() {
  html2canvas($('#firstshirt'), {
    onrendered: function(canvas) {
      var a = document.createElement('a');
      a.href = canvas.toDataURL("image/jpeg").replace("image/jpeg", "image/octet-stream");
      a.download = 'test.jpg';
      a.click();
    }
  });
});


var download = document.getElementById("download"),
result = document.getElementById("previewImage");

function renderContent() {
  html2canvas(document.getElementById("firstshirt"), {
    allowTaint: true
  }).then(function(canvas) {
    result.appendChild(canvas);
    download.style.display = "inline";
    download.href = result.children[0].toDataURL();
  });
}

function downloadImage() {

}

if (document.getElementById("btn-Preview-Image") != undefined) {
  document.getElementById("btn-Preview-Image").onclick = renderContent;
  download.onclick = downloadImage
}

最佳答案

如果您正在使用this html2canvas并且正在使用latest release(0.4.1)。
最新版本不返回promise并使用onrendered,而latest dev version返回promise(可能仍有onrendered选项,但没有文档记录)。
因此,您应该坚持使用onrendered并保持最新的版本,或者使用最新的dev和承诺。如果你想支持没有本地承诺的浏览器,你需要一个polyfil

10-06 08:14