1、Chrome浏览器:
需要先获取元素,再拿到元素的src或href的值,替换脚本的src值,即可直接下载图片
var a= document.createElement('a');
a.setAttribute('download', '验证码.jpg');
a.setAttribute('href', src值);
a.click();
2、IE浏览器
需要先获取元素,然后针对元素进行操作。由于IE浏览器不支持click动作,因此做如下操作
function() {
var canvas = document.createElement("canvas");
var image = document.querySelector("#checkcode");
canvas.width = image.width;
canvas.height = image.height;
canvas.getContext("2d").drawImage(image, 0, 0);
image.src = canvas.toDataURL();
var bstr = atob(image.src.split(",")[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
var blob = new Blob([u8arr]);
window.navigator.msSaveOrOpenBlob(blob, "verycode.jpg");
}()
最后再对出现的弹框进行处理
Dom使用Xpath定位元素位置
document.evaluate('//span[text()="集中交易"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue).click()