a标签跳转页面_a标签的download属性介绍

a标签在没有增加download属性的时候一般是直接跳转到一个页面,如果增加了download属性会导致跳转页面转变为强制下载相应的URL。

最近在使用download标签测试的时候,发现在chorme71、IE11、360-8浏览器不能强制下载,在Edge42可以强制下载,但是根据MDN、w3school、菜鸟教程上查询的兼容看到Chrome浏览器从版本14是可以的。

33ce860dbacd631bcb147e0d9e3ac503.png

ce360fd635e878f54a1c743e5078d0ec.png

98bc1e89cd0c1190c9f5858f30b1b457.png

最后经过查询,认为Chrome不能使用download强制下载的问题关键在于同源问题

2126fc5cfa0e11c0059af159030f8c32.png
浏览器的同源策略​developer.mozilla.org
31fd99fda14d77e82928eb08f7f39614.png

经过测试在Chrome浏览器中启动http-server前提下:

60540c3e69f345c0211e1ec4983865a1.png
Chrome浏览器download测试https://www.zhihu.com/video/1067863381406584832
 1、<a href="http://qq.com" download="2323.pdf">http://qq.com下载</a> 

该情况直接跳转到https协议的QQ主页,http与https不同,说明已经不同源了,不可以强制下载

2、<a href="qq.com" download="2323.pdf">qq.com下载</a> 

该情况不加前面的协议和域名。这时候http-server会使用QQ的默认的协议和域名,百度或者谷歌后浏览器显示的协议及域名,也就是https,所以就可以强制下载

3、<a href="https://www.qq.com" download="2323.pdf">https://www.qq.com下载</a> 

该情况加了前面的https协议和www域名,直接跳转到https协议的QQ主页,http与https不同,说明已经不同源了,不可以强制下载,同1

4、<a href="https://qq.com" download="2323.pdf">https://qq.com下载</a>

输入https://qq.com就算在百度上也找不到,所以没有任何反应。

5、<a href="www.qq.com" download="2323.pdf">www.qq.com下载</a>

该情况不加前面的协议,只加了域名。这时候http-server会使用QQ的默认的协议,百度或者谷歌后浏览器显示的协议及域名,也就是https,所以就可以强制下载

 6、<a href="www.qq.com" download="">www.qq.com download="" 下载</a>

该情况跟5一样,唯一不同是因为download没有给名字,所以默认用href的名字命名。

 7、<a href="index.html" download="2323.pdf">index.html下载</a>

这个就没有http或者https协议,用的是file协议,http-server默认也是可以支持file协议,所以也同源,可以强制下载

经过测试在Edge浏览器中启动http-server前提下:

c715d83c5086569ab0739c1124811035.png
Edge浏览器中download测试https://www.zhihu.com/video/1067863544330190848

除了第四种情况,其他的都可以强制下载,说明在Edge浏览器中没有不同源的影响,并可以用download实现强制下载。

 4、<a href="https://qq.com" download="2323.pdf">https://qq.com下载</a>

输入https://qq.com就算在百度上也找不到,所以没有任何反应。

经过测试在IE11和360浏览器中启动http-server前提下:

7ab340d24d7539a3d7923810cbbe7f5a.png
IE11浏览器中download测试https://www.zhihu.com/video/1067863769526366208
d71a08f9fa09df4b7b7e12e5ecff05d2.png
360浏览器中download测试https://www.zhihu.com/video/1067863893971431424

所有情况都不可以强制下载。

另外:

(1)只有第1和地3种情况可以实现跳转页面到QQ的https协议的主页,应该是要输入协议才可以实现跳转。

(2)第4种情况同样没有任何反应;

(3)第7种情况会跳转到本地index.html地址;

(4)其他的情况网页都会报错。

总结:

1、download属性在Edge42浏览器中可以强制下载,并且不用考虑同源问题;

2、download属性在Chrome71浏览器中可以强制下载,但是必须考虑同源问题;

3、download属性在IE11和360-8浏览器中不可以实现强制下载;

4、根据MDN、w3school、菜鸟教程查询到firefox也是可以实现强制下载,但是要注意版本,同源问题我没有测试。

本文为本人的原创文章,著作权归本人所有,转载务必注明来源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值