在IE中打印并保存base64编码图像

时间:2015-12-28 10:47:03

标签: javascript internet-explorer dialog

我在使用绘图应用程序打印和保存base64编码的png图像时出现问题,您可以在此处看到:http://test1.spletodrom.com/uganka/index.html

在左下角,您有2个图标/按钮,保存并打印。 变量simpleBoard.getImg()是base64编码的图像字符串。

此代码触发了保存操作:

$('#save-img').on('click', function(e) {
  startLoad();
  var img = simpleBoard.getImg();
  img = img.replace("image/png", "image/octet-stream");
  var link = document.createElement('a');
  link.download = 'slika.png';
  link.target = '_blank';
  link.href = img;
  link.click();
  endLoad();
});

此代码触发了打印操作:

$('#print-img').on('click', function(e) {
  startLoad();
  var img = simpleBoard.getImg();
  var popup = window.open();
  popup.document.write('<img src=' + img + '>');
  popup.focus(); //required for IE
  popup.print();
  endLoad();
});

浏览器行为:

  1. IE9&amp; IE10: 单击保存不执行任何操作,单击打印在新选项卡中打开base64编码图像,但不打开打印对话框
  2. IE11: 单击保存或打印在新选项卡中打开base64编码图像,但不打开打印/保存对话框
  3. 火狐: 点击保存不做任何事情,点击打印正常工作
  4. 铬: 点击“保存并打印”正常工作
  5. 控制台没有错误。

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我在这里找到了合并的解决方案,这就是解决方案:

$('#print-img').on('click', function(e) {
  startLoad();
  var img = simpleBoard.getImg();
  var popup=window.open();
  popup.document.write('<img src=' + img + '>');
  popup.document.close();
  popup.focus();
  popup.print();
  popup.close();
  endLoad();
});