通过超链接下载< >在IE11中使用javascript

download img throught hyperlink <a> in IE11 using javascript

本文关键字:IE11 javascript 下载 超链接      更新时间:2023-09-26

以下代码适用于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>

你不能在IE中使用这种方法,因为即使是版本11,它也不支持锚元素的"download"属性:http://caniuse.com/download

您将不得不求助于服务器端来生成图像并将其发送到客户端