javascript - Mozilla Firefox 中的 html2canvas 冲突

标签 javascript html2canvas

我正在使用html2canvas 库。该代码采用 div 并将其内容保存为 png。它与 operachrome 配合得很好,但是当我在 firefox 中运行代码时,它不会将 div 保存为 png。在 Firefox 中单击下载按钮不会发生任何操作。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script type="text/javascript" src="js/html2canvas.js"></script>
    <script src="https://rawgit.com/niklasvh/html2canvas/master/dist/html2canvas.js"></script>
  </head>
  <body>
    <div id="html-content-holder">
      Div part to save as png
    </div>
    <input id="btn-Convert-Html2Image" type="button" value="Download" />
    <script>
      $('#btn-Convert-Html2Image').click(function() {
        html2canvas($('#html-content-holder'), {
          onrendered: function(canvas) {
            var a = document.createElement('a');
            a.href = canvas.toDataURL("image/png")
            a.download = 'somefilename.png';
            a.click();
          }
        });
      });
    </script>
  </body>
</html>

最佳答案

Keep an hidden anchor element in the DOM and update the href property of the element inside onrendered handler.

$('#btn-Convert-Html2Image').click(function() {
  html2canvas($('#html-content-holder'), {
    onrendered: function(canvas) {
      var a = $('#download').get(0);
      a.href = canvas.toDataURL("image/png")
      a.download = 'somefilename.png';
      a.click();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://rawgit.com/niklasvh/html2canvas/master/dist/html2canvas.js"></script>
<div id="html-content-holder">
  Div part to save as png
</div>
<input id="btn-Convert-Html2Image" type="button" value="Download" />
<a href="" id='download'></a>

Fiddle Demo

关于javascript - Mozilla Firefox 中的 html2canvas 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36760712/

相关文章:

javascript - 使用 JavaScript 和 JQuery 从表单中检索 key

javascript - 外部网站的html2canvas截图

javascript - 使用 html2canvas 在下拉图标中无法正确捕获图像

javascript - 在 Vuejs 项目中使用 jsPDF 和 html2canvas(没有 webpack)

javascript - 在新标签页中创建和打开 PDF

javascript - 使用输入变量设置元素的值

php - 如何将 html 元素值提交给其在 Kohana 中的相应 Controller

javascript - 当 Canvas 在多个页面上拆分时,如何在使用 html2canvas 和 jspdf 时添加上边距?

JavaScript ArrayBuffer 切片在 Safari 9.1.2 中明显损坏

javascript - 如何以 html 使用的默认字体显示 pre 标记中的文本?