问题:你到底是想让你自己的Chrome直接下载PDF,还是想让你的服务器上的PDF被Chrome直接下载?
如果是前者,你可以打开Chrome插件设置页面chrome://plugins/
,停用其中的“Chrome PDF Viewer”插件,这样你的Chrome就会直接下载所有PDF文件了。
后者的话,我们又可以分两种情况:
1)自己已经有文件的存放路径了,要放到页面上直接点击下载的(固定形式),如下图:
这种下载一般都是固定的地址的,所以可以直接在这个a链接写就可以了<a href="downloadUrl" download></a>; (这个是html5的属性,注意兼容性问题);
2)链接下载地址是没有固定的,根据用户操作了之后再生成链接,如这个星期我在做下载功能的时候,下载的psd的时候chrome是可以直接打开的,所以导致下载了之后浏览器直接打开pdf,而不是下载,这个时候我们就可以在请求到下载地址之后呢就js生成一个a链接在body上,然后在模拟点击它,这样就可以实现点击下载后是下载文件,而不是打开浏览器支持直接打开的文件类型的文件了.
$('body').append('<a href="http://tuxi.howdata.cn/'+ data.filename+'" download id="downloadDoc" style="display:none;"></a>') //生成a链接 $('#downloadDoc')[0].click(); //因为click()是原生js的事件,跟jquery不能一起使用,所以在在dom选择上转成了原生方法[0] $('#downloadDoc').remove(); //移除a链接,用户没刷新页的情况下可下次下载,不然会发生冲突了