下周文件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
版权声明:本文为博主原创文章,转载请附上博文链接!
下周文件ie 谷歌兼容性处理的更多相关文章
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- PHP curl传输文件的版本兼容性
/** * 存储文件到远程服务器 * * @param string $filePath * 文件绝对路径 * @param string $fileSaveUrl * 存储的远程目标地址 * @pa ...
- curl_setopt用此函数设置上传文件请求的兼容性调整
在用curl_setopt($curl, CURLOPT_POSTFIELDS, $fileData);这个函数设置时会报错如下 curl_setopt(): The usage of the @fi ...
- 谷歌推出备份新工具:Google Drive将同步计算机文件
Google 正在将云端硬盘 Drive 转变成更强大的文件备份工具.很快,Google Drive 将能监测并备份你电脑上的(几乎)所有文件,只要是你勾选的文档,Drive 就能同步至云端. 具体来 ...
- SRS+flv.js打造兼容性较高的直播、点播平台
**************************************************************************************************** ...
- js中兼容性问题的封装(能力检测)
所谓兼容性,就是看浏览器是否支持当前对象的属性或是方法,先通过获得页面文本内容的方式来了解兼容性,并封装函数或对象以解决此类问题. 获得页面文本内容的方式:innnerText 或textConten ...
- android项目中values中几个文件的作用
最近反编译了几个Android软件,发现一些以前未用到的资源文件:ids.xml——为应用的相关资源提供唯一的资源id.id是为了获得xml中的对象而需要的参数,也就是Object = findVie ...
- 在Android中开源类库使用过程中兼容性等问题的讨论
1.在Android4.0环境下编译的actionbarsherlock.slidingmenu类库,能不能在4.0以下的版本中使用 相信很多人跟我一样,都以为在低版本(如Android2.1或2.3 ...
- 14.8.2 Verifying File Format Compatibility 校验文件格式兼容性:
14.8.2 Verifying File Format Compatibility 校验文件格式兼容性: 14.8.2.1 Compatibility Check When InnoDB Is St ...
随机推荐
- 下载安装Zookeeper
下载地址 http://archive.apache.org/dist/zookeeper/ 进入如上的Url,选择合适的zookeeper版本,下载"tar.gz"文件: 解压安 ...
- Java精通并发-synchronized关键字原理详解
关于synchronized关键字原理其实在当时JVM的学习[https://www.cnblogs.com/webor2006/p/9595300.html]中已经剖析过了,这里从研究并发专题的角度 ...
- 大数据之路week07--day07 (Sqoop 从mysql增量导入到HDFS)
我们之前导入的都是全量导入,一次性全部导入,但是实际开发并不是这样,例如web端进行用户注册,mysql就增加了一条数据,但是HDFS中的数据并没有进行更新,但是又再全部导入一次又完全没有必要. 所以 ...
- JVM那些事儿之内存区域
相信绝大多数java开发者或多或少的都应该知道jvm,但是有多少人又深入去了解过,笔者深感自身能力的不足,去看了些资料,觉得还是有必要整理下自己的学习记录,时常回头看看,多看多实践提升自己的能力,故开 ...
- go http编程
http的请求包包含 请求行,请求头,空行,请求体go的http编程 http server.go package main import "net/http" func main ...
- LINUX系统的常用知识
常用的命令: man config 查看linux里面所有命令的详细描述 man pwd 按回车是一行一行的走,按空格是一页一页的走,按q键是退出的意思 mkdir test 创建文件夹p ...
- 【CSP-S 2019】【洛谷P5658】括号树【dfs】【二分】
题目: 题目链接:https://www.luogu.org/problem/P5658?contestId=24103 本题中合法括号串的定义如下: () 是合法括号串. 如果 A 是合法括号串,则 ...
- 搭建使用PHPstorm环境
本周学习内容: 1.学习PHP: 2.复习技能表: 3.学习正则表达式: 实验内容: 1.安装PHPstorm环境,破解PHPstorm: 2.PHPstorm运行PHP代码 3.PHPstorm安装 ...
- ServletContext对象应用——三天免登录
1.用到的知识点: (1)Cookie (2)Session (3)ServletContext 其中Cookie和Session是会话技术的组成部分,一次会话从打开浏览器的某个站点开始,到浏览器关闭 ...
- Poj 2018 Best Cow Fences(分数规划+DP&&斜率优化)
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Description Farmer John's farm consists of a ...