猿问

js通过 URL下载文件

页面上一个button,点击之后触发一个function去请求数据,返回 pdf/epub 的URL,然后下载这个文件.

本来是直接用 a 写的,href里放资源地址,target设为'_blank'效果良好.但这样所有的资源都会直接暴露而且不方便统计,所以就换用上面的方式.

  1. js构造a标签,js触发click.不加_blank是可以的,但会替换掉原来整个页面.加了_blank chrome就拦截,Safari无效果.

  2. 用iframe,src填入资源地址. 但这样Safari无效果. 且,如果是MP4/pdf这样的文件浏览器并没有下载而是直接打开.

  3. window.open 被拦截

最想要的效果是点击下载按钮,原页面无改动无刷新,直接下载资源.移动版在新页面下载,触发下载自动关闭新页面.

请问上面方法要怎么改才能满足需求呢?谢谢啦


30秒到达战场
浏览 4644回答 1
1回答

忽然笑

你自己基本都把方法与思路想好了,这个涉及到浏览器或者系统的安全限制等原因,模拟点击等都不能实现。所以建议还是直接使用你提到的第一种方式,但你说不方便统计是指什么?统计下载或者做权限下载你可以使用动态链接
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答