Javascript下载无法在Firefox和IE中运行

时间:2016-04-12 23:25:02

标签: javascript html5 canvas todataurl

我正在下载图片。它仅适用于Chrome,不适用于Firefox或IE。

        var a = document.createElement('a');
        a.href = canvas.toDataURL("image/jpeg").replace("image/jpeg", "image/octet-stream");
        a.download = 'Post-ITIE.jpg';
        a.click()

任何人都可以帮助我,它如何适用于所有浏览器。

JsFiddle example

帮助将受到高度赞赏。感谢

1 个答案:

答案 0 :(得分:8)

var fileName = 'Post-ITIE.jpg';

if ('msToBlob' in canvas) { // IE10+
  var blob = canvas.msToBlob();
  navigator.msSaveBlob(blob, fileName);
} else {
  var a = document.createElement('a');
  a.setAttribute('href', canvas.toDataURL());
  a.setAttribute('target', '_blank');
  a.setAttribute('download', fileName);
  a.style.display = 'none';
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
}

它与最初提供的代码有所不同:

  • 检查是否存在msToBlob方法以支持在Internet Explorer中下载文件。
  • 它向链接元素添加target=blank。即使浏览器不支持download属性,也可以确保显示图像。
  • 它添加了指向文档的链接,以便.click()实际上可以在Firefox中使用,然后将其删除。