支持chrome30下载文件
2024-08-31 22:36:38
function downloadX(url ,fileName){
const xhr = new XMLHttpRequest(); xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
downloadFile(fileName,xhr.response);
}
}; xhr.send();
} function IE_downloadFile(fileName, content) { var ifr = document.createElement('iframe'); ifr.style.display = 'none'; document.body.appendChild(ifr);
ifr.contentWindow.document.write(content) //navigator.userAgent.indexOf("MSIE 6.0") > 0 || navigator.userAgent.indexOf("MSIE 7.0") > 0 ||
if (navigator.userAgent.indexOf("MSIE 8.0") > 0) {
fileName = fileName + ".txt";
}
ifr.contentWindow.document.execCommand('SaveAs', false, fileName); document.body.removeChild(ifr); } function X_downloadFile(fileName, content) {
var aLink = document.createElement('a');
var blob = new Blob([content]);
var evt = new MouseEvent("click", { "view": window, "bubbles": false, "cancelable": false });
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
} function downloadFile(fileName, content) {
if (!/Trident|MSIE/.test(navigator.userAgent))
return X_downloadFile(fileName, content);
else
return IE_downloadFile(fileName, content); }
只是为了chrome30的简单版本
function downloadX(url, fileName) {
const xhr = new XMLHttpRequest(); xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function () {
if (xhr.status === 200) { var aLink = document.createElement('a');
var blob = new Blob([xhr.response]);
var evt = new MouseEvent("click", { "view": window, "bubbles": false, "cancelable": false });
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
}
}; xhr.send();
}
最新文章
- windbg学习---.browse打开一个新的command 窗口
- ArcGIS中添加进自定义的ttf字符标记符号
- 使自定义事件支持多绑定 js
- 树链剖分入门-Hdu3966 Aragorn's Story
- Android 设置 横屏 竖屏 (转)
- Leetcode#78 Subsets
- 借助bool判断使冒泡排序效率提高
- NDK开发之调用方法
- 【转】Jollen 的 Android 教學,#12: 如何建立選單 Menu
- NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
- 【细说Java】Java封箱拆箱的一些问题
- 一些不太常用的Linux命令
- 【LeetCode】284. Peeking Iterator
- python进程、进程池(二)代码部分
- MySql数据库在NodeJS中简单的基本操作
- 设计模式C++学习笔记之十五(Composite组合模式)
- 前端-JavaScript1-4——JavaScript之变量
- Android系统启动流程(三)解析SystemServer进程启动过程
- [2017BUAA软工助教]剩余个人作业与deadline
- HTML5新特性之文件和二进制数据的操作
热门文章
- [Grid Layout] Place grid items on a grid using grid-column and grid-row
- [React] Test friendly approach
- 开源server软件
- Python将被加入高考科目?你怎么看?
- 如何在一个div中使其子div居中
- 移动端iPhone系列适配问题的一些坑
- Filter,Listener(转)
- Winfrom 重新登录
- [02]基于webservice权限系统
- 使用Akka、Kafka和ElasticSearch等构建分析引擎 -- good