为了账号安全,请及时绑定邮箱和手机立即绑定

火狐浏览器的a标签无法实现下载

火狐浏览器的a标签无法实现下载

MYYA 2018-08-26 15:23:25
问题描述想通过a标签实现canvas的下载,相同的代码在谷歌浏览器下可行,在火狐下却无法实现相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)var mycanvas = $("#export11").find("canvas")[0];  var image = mycanvas.toDataURL("image/jpeg");   var $a = document.createElement('a');  $a.setAttribute("href", image);  $a.setAttribute("download", this.state.nowDate + "多能点号图");  $a.click();
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

模拟点击出现的问题,在火狐中直接$a.click()是没有效果的,有两种方式可以实现。
方法一:

var image = mycanvas.toDataURL("image/jpeg");
var $a = document.createElement('a');$a.setAttribute("href", image);$a.setAttribute("download", this.state.nowDate + "多能点号图.jpg");//需要加上后缀名
document.body.appendChild($a);$a.click();
document.body.removeChild($a);

方法二:

var image = mycanvas.toDataURL("image/jpeg");
var $a = document.createElement('a');$a.setAttribute("href", image);$a.setAttribute("download", this.state.nowDate + "多能点号图.jpg");//需要加上后缀名
const evt = document.createEvent('Event');
evt.initEvent("click", true, true);$a.dispatchEvent(evt);


查看完整回答
反对 回复 2018-08-27
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

$a.click() 改成 $a.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window}));

    var mycanvas = $("#export11").find("canvas")[0];    var image = mycanvas.toDataURL("image/jpeg");    var $a = document.createElement('a');
    $a.setAttribute("href", image);
    $a.setAttribute("download",  "多能点号图");
    $a.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window}));

亲证可用


查看完整回答
反对 回复 2018-08-27
  • 2 回答
  • 0 关注
  • 2366 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信