zoukankan      html  css  js  c++  java
  • 下周文件ie 谷歌兼容性处理

    https://blog.csdn.net/u014628388/article/details/81738704

    问题描述
    window.URL.createObjectURL()可以直接生成blob:开头的链接,该链接产生于浏览器端,不会占用服务器资源。

    window.URL.createObjectURL()在IE10, IE11以及Microsoft Edge中生成的blob:链接,你不能把它加到一个<a>节点上,也不能直接在浏览器地址栏打开访问,并且得到“Error: 拒绝访问。”错误。open links made by window.URL.createObjectURL in IE/Edge这样的提问到处都是,IE9根本不支持window.URL.createObjectURL创建Blob URLs就更惨了。

    Microsoft Internet Explorer / Microsoft Edge和高大上的Google Chrome / Mozilla Firefox对于window.URL.createObjectURL创建Blob链接最直观的区别在于得到的blob:链接形式不一样,分别在微软浏览器和标准浏览器中运行以下代码,得到两种Blob链接形式

    第一种为chrome和firefox生成的带有当前域名的标准blob:链接形式
    第二种为Microsoft IE和Microsoft Edge生成的不带域名的blob:链接。
    可以通过window.URL.createObjectURL(new Blob()) . indexOf(location.host) < 0来检测是否是IE或早期生成Object URL不带域名的Edge。如果表达式返回true则时IE或Edge旧版本。

    解决方案
    Blob URL  is not supported by IE due to security restrictions.

    IE has its own API for creating and downloading files, which is called msSaveOrOpenBlob.

    Here is my cross-browser solution that works on IE, Chrome and Firefox:

    var download_csv_using_blob = function (file_name, content) {
    var csvData = new Blob([content], { type: 'text/csv' });
    // for IE
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
    window.navigator.msSaveOrOpenBlob(csvData, file_name);
    }
    // for Non-IE (chrome, firefox etc.)
    else {
    var a = document.createElement('a');
    document.body.appendChild(a);
    a.style = 'display: none';
    var url = window.URL.createObjectURL(csvData);
    a.href = url;
    a.download = file_name;
    a.click();
    a.remove();
    window.URL.revokeObjectURL(url);
    }
    };
     
    ---------------------
    作者:杨勇Angus
    来源:CSDN
    原文:https://blog.csdn.net/u014628388/article/details/81738704
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    支付宝生活号授权获取用户信息
    jQuery选项卡
    多图上传加验证加修改file样式
    微信小程序上传图片单张
    圣诞节的整理前两周的内容5
    圣诞节的整理前两周的内容4
    圣诞节的整理前两周的内容3
    圣诞节的整理前两周的内容2
    圣诞节的整理前两周的内容1
    2018.12.14——函数作用域
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/10876316.html
Copyright © 2011-2022 走看看