html包含连接,当包含base64数据作为href的HTML链接元素(<a/>)准备就绪时,是否触发事件?...

我创建了一个基本上并排显示2个图像的webpage .

它有一个"download"按钮,它触发一个vanilla Javascript函数,它创建一个 HTML元素并连接其中的两个图像 . 然后它创建一个与base64编码的结果图像的链接为 href 并单击它:

这是我正在使用的功能:

/**

* Create canvas, draw both images in it, create a link with the result

* image in base64 in the "href" field, append the link to the document,

* and click on it

*/

function saveImage() {

// Get left image

var imgLeft = new Image();

imgLeft.setAttribute('crossOrigin', 'anonymous');

imgLeft.src = "imgleft/" + idxImageShownLeft + ".jpg";

imgLeft.onload = function() {

// Once the left image is ready, get right image

var imgRight = new Image()

imgRight.setAttribute('crossOrigin', 'anonymous');

imgRight.src = "imgright/" + idxImageShownRight + ".jpg";

imgRight.onload = function() {

// Once the right image is ready, create the canvas

var canv = document.createElement("canvas");

var widthLeft = parseInt(imgLeft.width);

var widthRight = parseInt(imgRight.width);

var width = widthLeft + widthRight;

var height = imgLeft.height;

canv.setAttribute("width", width);

canv.setAttribute("height", height);

canv.setAttribute("id", "myCanvas");

canv.setAttribute('crossOrigin', 'anonymous');

var ctx = canv.getContext("2d");

// Draw both images in canvas

ctx.drawImage(imgLeft, 0, 0);

ctx.drawImage(imgRight, widthLeft, 0);

// Create PNG image out of the canvas

var img = canv.toDataURL("image/png");

// Create link element

var aHref = document.createElement('a');

aHref.href = img;

aHref.setAttribute("id", "dllink");

aHref.download = "image.png";

// Append link to document

var renderDiv = document.getElementById("render");

renderDiv.replaceChild(aHref, document.getElementById("dllink"));

// Click on link

aHref.click();

}

}

}

我的问题是这在Firefox上运行良好,但在Chrome上运行不正常 .

经过一番调查后,我意识到通过在Chrome中的 aHref.click(); 行之前设置一个断点,它运行正常 . 我认为这意味着 aHref.click(); 被称为 before

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值