IE8文件下载

今年给省公司做了一个项目,哈哈哈,兼容IE8好嘛,都2023年了,真可以

别的不说了,上代码,文件下载功能

var fileDown = function (p, s) {
		//创建a标签
		var url = p;
		var saveName = s;
		var DownLoad = function (url, name) {
			if (!!window.ActiveXObject || 'ActiveXObject' in window) {
				//ie
				var oPow = window.open(url, '', 'width = 1, height = 1, top = 5000, left = 5000 ');
				var isOpen = true; //判断window.open是否被禁用
				try {
					if (oPow == null) {
						isOpen = false;
					}
				} catch (err) {
					isOpen = false;
				}
				if (isOpen) {
					//没禁用window.open采用window.open下载
					while (oPow.document.readyState !== 'complete') {
						if (oPow.document.readyState === 'complete') break;
					}
					oPow.document.execCommand('SaveAs', true, name);
					oPow.close();
				} else {
					//禁用了window.open采用iframe下载
					var oIrame = document.createElement('iframe');
					oIrame.style.width = '0px';
					oIrame.style.height = '0px';
					oIrame.style.opacity = 1;
					document.body.appendChild(oIrame);
					oIrame.src = url;
					var IfDoc = oIrame.contentDocument || oIrame.document;
					oIrame.onreadystatechange = function () {
						// IE下的节点都有onreadystatechange这个事件
						if (oIrame.readyState == 'complete') {
							// oIrame.execCommand("SaveAs", true, name)
							document.body.removeChild(oIrame);
						}
					};
				}
			} else {
				if (typeof url == 'object' && url instanceof Blob) {
					url = URL.createObjectURL(url); // 创建blob地址
				}
				var aLink = document.createElement('a');
				aLink.href = url;
				aLink.download = name || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
				var event;
				if (window.MouseEvent) {
					event = new MouseEvent('click');
				} else {
					if (document.createEvent) {
						event = document.createEvent('MouseEvents');
						event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
					}
				}
				aLink.dispatchEvent(event);
			}
		};
		DownLoad(url, saveName);
	};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值