嗨,我想在IE中本地保存画布.
var img = canvas.toDataURL("image/png").replace("image/png","image/octet-stream");
我无法通过以下方式下载它.
1) document.execCommand("SaveAs".. 2) window.location.href = img; 3) $.fileDownload(img); // jquery download file library- 4) canvas2image // cross domain problem.
有没有办法在没有base64或跨域问题的IE中本地保存画布?非常感谢你.
解决方法
我知道这已经很晚了,但是在我的搜索中我偶然发现了这个问题同样的事情,我想分享一个对我有用的解决方案.
假设您已有数据URI,则可以创建blob,然后使用msSaveBlob或msSaveOrOpenBlob
例:
dataURItoBlob = function(dataURI) { var binary = atob(dataURI.split(',')[1]); var array = []; for(var i = 0; i < binary.length; i++) { array.push(binary.charCodeAt(i)); } return new Blob([new Uint8Array(array)],{type: 'image/png'}); } var blob = dataURItoBlob(uri); window.navigator.msSaveOrOpenBlob(blob,"my-image.png");
输入此内容后,我意识到这并不能真正帮助您解决跨域问题,所以这是最好的部分答案.有了这个,我只能考虑在可能的情况下使用数据URI,如果跨域是一个问题.