原因:

由于data:xxx协议存在安全问题,编码的url可能会被包含了一些攻击代码,被用来做网络钓鱼攻击,所以Chrome 60 开始禁止页面使用data:url的方式跳转导航,包括以下几种情况:

浏览器可以直接打开data协议的图片,但是不能通过代码与标签的方式,从页面中跳转打开

解决方案:

本来这里是通过打开一个iframe页面展示图片的,但是改变了一下,打开空白页之后,添加img标签,高度百分百呈现

  1. function toImageView(e) {
  2. var imgUrl = e;
  3. var imageHTML = "<img style='height: 100%;' src='" + imgUrl+ "'></iframe>";
  4. var x = window.open();
  5. x.document.write(imageHTML);
  6. x.document.close();
  7. }

目前,Data URI scheme支持的类型有:

  1. data:,文本数据
  2. data:text/plain,文本数据
  3. data:text/html,HTML代码
  4. data:text/html;base64,base64编码的HTML代码
  5. data:text/css,CSS代码
  6. data:text/css;base64,base64编码的CSS代码
  7. data:text/javascript,Javascript代码
  8. data:text/javascript;base64,base64编码的Javascript代码
  9. data:image/gif;base64,base64编码的gif图片数据
  10. data:image/png;base64,base64编码的png图片数据
  11. data:image/jpeg;base64,base64编码的jpeg图片数据
  12. data:image/x-icon;base64,base64编码的icon图片数据

这些类型只是其中一部分,还有其他的类型的,比如Word、Excel等

注:这个打开的页面,emmm,不是很好看,可以说很难看……