特么坑爹的浏览器
一个按钮被点击应该下载一个文件,可是需要通过服务器动态获取下载地址,拿到地址后,然后调用window.open给我拦截了
然后我这不服输的劲就开始折腾,非得解决掉你不可,然后各种百度,
先尝试了
创建一个a标签然后模拟click一下,测试时候没问题
等上服务器照样给我拦截
然后第二次尝试
这次我创建了一个iframe,反正我是下载文件,应该是可以的把
上服务器之后,结果同上,无语~~~~
然后第三次尝试
这次我创建了一个form表单,我提交表单你应该不会给我拦截了吧
结果同上
这下搞毛我了,我还就不信解决不掉
深入研究,发现浏览器打开窗口或者跳转事件,要被不拦截就需要按钮点击,但是模拟点击浏览器能判断出来,
反正获取下载地址的时候已经点击过一次了,我就想能不能保存这个event变量呢,注意,要保存,全局的没法用
然后用event在模拟一次试试,哈哈,成功!!!刚开始竟然被我写了病毒,打开个不停,好了,不说了,上代码
function aClick(event){
}
//(我用的是rapid框架,rapid.getView(event.target)跟JQ的 $(event.target) 差不多的)
function eventDownload(event,url) {
const aView = rapid.getView(event.target);
aView.attr('href', url);
aView.attr('target', '_blank');
aView.click();
aView.removeAttr('href');
aView.attr('target');
};