以下代码适用于 Google Chrome 但不适用于 IE11。
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<img id="img1" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAASUlEQVRo3u3PAQ0AIAwDsIGC+TcL
LkhOWgddSU6Ga5udT4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi8cQEjUgGT
mE6z3QAAAABJRU5ErkJggg==" />
<script>
var a = document.createElement('a');
var image = document.getElementById('img1');
a.setAttribute('href', image.src);
a.setAttribute("download", 'fileName');
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
</script>
</body>
</html>
当我在 IE11 中运行此代码时,我收到消息:“您要允许此网站在您的计算机上打开应用程序吗?”
点击“允许”后,我得到“没有安装打开此类链接(数据)的应用”
如何让它在 IE11 中工作?
最佳答案
这个对 IE10+ 很有用:http://msdn.microsoft.com/en-us/library/hh779016(v=vs.85).aspx
类似于:
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<img id="img1" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAASUlEQVRo3u3PAQ0AIAwDsIGC+TcL
LkhOWgddSU6Ga5udT4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi8cQEjUgGT
mE6z3QAAAABJRU5ErkJggg==" />
<canvas id="canvas1"></canvas>
<script>
var image = document.getElementById('img1');
var canvas = document.getElementById('canvas1');
var ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0, image.width, image.height);
window.navigator.msSaveBlob(canvas.msToBlob(), 'drawingFileName.png');
</script>
</body>
</html>
关于javascript - 使用javascript在IE11中通过超链接<a>下载img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22665111/