html2canvas 图像未保存

html2canvas image is not getting saved

我正在使用 html2canvas 捕获 div 的屏幕截图并保存...但它没有被保存。

function captureDiv() {
  const div = document.getElementById('myDiv');
  html2canvas(div, {
    scale: 2,
    onrendered: (canvas) => {
      let link = document.createElement('a');
      link.setAttribute('download', 'screenshot.png');
      link.setAttribute('href', canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"));
      link.click();
    }
  });
}
div {
  width: 60px;
  height: 50px;
  text-align: center;
  border: 1px solid;
  line-height: 3;
}
<div> HI </div>
<button onclick="captureDiv()">Capture</button>

<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.5/dist/html2canvas.min.js"></script>

您需要致电then。正如他们在 this thread 中所说,它取代了 onrederer。所以它会是这样的:

function captureDiv() {
  const div = document.getElementById('myDiv');

  html2canvas(div, {scale: 2}).then(canvas =>  {
    let link = document.createElement('a');
    link.setAttribute('download', 'screenshot.png');
    link.setAttribute('href', canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"));
    link.click();
  });
}