JS使用技巧-如何解决谷歌浏览器下载图片、PDF文档时只打开不下载的问题?
问题描述:
页面下载跨域的图片、pdf文件,浏览器总是自动打开,并且在下载列表里面不显示。
如何解决谷歌浏览器下载图片、PDF文档时只打开不下载的问题?如何变成直接下载?
解决方法:
使用js获取下载流,重新生成本地下载链接,再触发下载事件,代码如下:
function getFile(url,fileName){var httpRequest = new XMLHttpRequest();//指定响应类型,这决定了浏览器对返回内容的解析方式,设置为空或者text会作为字符解析、json会作为json解析,blob和arraybuffer会作为字节流解析httpRequest.responseType ='arraybuffer';httpRequest.open('GET', url, true);httpRequest.onload = function () {if (httpRequest.readyState == 4 && httpRequest.status == 200) {//只有responseType为空或者text,才会使用responseText获取内容,其他情况 httpRequest.response就是你需要的不含http头的返回内容var content = httpRequest.response;var elink = document.createElement('a');elink.download = fileName;elink.style.display = 'none';var blob = new Blob([content]);//创建指向内存中字节流的链接elink.href = URL.createObjectURL(blob);document.body.appendChild(elink);elink.click();document.body.removeChild(elink);}};httpRequest.send();
}
亲测可用,在谷歌浏览器点击图片和pdf,就可以显示下载内容,而不是在新tab页打开了
JS使用技巧-如何解决谷歌浏览器下载图片、PDF文档时只打开不下载的问题?相关推荐
- 下载图片,文档,excel导入导出
Q1:下载图片,文档 --1:Fileio.html <!DOCTYPE html> <html> <head> <meta charset="UT ...
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)...
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载) 该主题的Part1- Part5系列文章已经陆续发表.为了感兴趣的朋友阅读方便,这里提供 ...
- 破解打开证书加密的PDF文档-数字证书(电子书私钥)下载和导入教程
数字证书(电子书私钥)的导入方法-如何破解打开证书加密的PDF文档 请回复下载本证书,相关教程见压缩包内使用说明:文件解压密码:www.8cmd.com *** Hidden to visitors ...
- flexpaper php 代码,FlexPaper Flex在线显示PDF文档的php源码下载|FlexPaper Flex在线显示PDF文档的php源码官方下载-太平洋下载中心...
FlexPaper Flex在线显示PDF文档的php源码是Php源码频道下深受用户喜爱的软件,太平洋下载中心提供FlexPaper Flex在线显示PDF文档的php源码官方下载.FlexPaper ...
- jacob解决freemaker下载的word文档手机无法打开问题
java使用freemaker下载word的流程如下: 1.新建一个word模板 2.另存为xml格式 3.将xml后缀的文件后缀改成.ftl 4.将ftl中需要替换的内容使用freemaker js ...
- 如何在使用itext生成pdf文档时给文档添加背景图片
这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片. 在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面.这 ...
- 自己亲自写的两本linux资料,免费下载,pdf文档
第一本是我写的韩顺平老师解说的linux视频的笔记,该视频原本有21讲,可是我始终没有找到当中的17.18讲.可是其它部分我感觉及记录的还是蛮认真的.该套视频解说的非常基础,因此我的这本笔记也非常基础 ...
- itext生成pdf文档时给文档添加背景图片
像往常一样将图片加载到文档即可,只不过,要将图片缩放到整个文档,换句话说,图片的初始位置是 0,0大小就是文档的大小,比如你创建A4纸大的文档,图片就应该缩放到大小(595,842),其他的纸张可以去 ...
- 【Axure技巧】Axure RP 9 生成HTML文档如何自动打开页面列表?
前言 自从由Axure RP 8 升级到 RP 9 后,遇到了许多不习惯的操作,比如预览HTML时的页面列表,在RP 8中是默认打开的,来到RP 9 变成了默认隐藏的了,需要手动设置一下才会自动打开( ...
最新文章
- 在js中使用HashMap数据结构,在js中使用K,V数据结构
- 一个object上拥有一个同步队列和一个等待队列
- sql语句没错 mysql.data.dll类型的异常_未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。...
- 3 weekend110的hadoop中的RPC框架实现机制 + hadoop中的RPC应用实例demo
- data:text/html firefox钓鱼,JS DataURL 整理(一)
- golang mysql大量连接_golang mysql 如何设置最大连接数和最大空闲连接数
- 区块链六-Merkle Tree
- python处理ppt的插件_几款PPT神器插件,千万不能错过!
- matlab错误使用builtin,MATLAB环境下运行MATLAB函数时发生异常
- 怎样用ZBrush中的Curves和Insert笔刷创建四肢
- 计算机一级和答案,全国计算机一级操作题及答案
- html5新标签转换插件,GOOGLE推出SWIFFY插件 一键转换SWF到HTML5
- ioi 赛制_杨骏昭IOI2019参赛总结
- 手机内存卡格式化了怎么办
- FX3学习笔记2-cs-make[1]: [post-build] Error 2 (ignored)
- Java/计算银行利率
- kernel启动流程-head.S的执行_3.preserve_boot_args
- 全国计算机等级考试shi,全国计算机等级考试等级设置
- ASP.NET Core2.1 你不得不了解的GDPR(Cookie处理)
- 使用numpy实现李代数se(3)和SE(3)之间的指对数映射