最近在开发一个项目时,发现一个bug,导出功能在谷歌浏览器和360浏览器上点击后一切正常,但是在QQ浏览器上,点击导出页面就会跳转。而且最奇怪的是,另一个同事电脑上的QQ浏览器就不存在这个问题。我在折腾了后端人员一个小时之后(真的好抱歉。。),突然发现我的QQ浏览器是兼容模式运行的,切换成极速模式就一切正常了。

所以问题其实还是出在浏览器内核上,但是你不能强制要求客户的浏览器都用极速模式,我们只能解决问题。

附上代码:

     export (url, params) {let queryStr = '?1=1'if (params) {for (let i in params) {queryStr += `&${i}=${params[i]}`}}console.log('导出参数:', params);var ele = document.createElement('a');ele.download = process.env.VUE_APP_BASEURL + url + queryStr;ele.style.display = 'none';ele.href = process.env.VUE_APP_BASEURL + url + queryStr;ele.target="_blank"; // 针对 ie模式 的浏览器// 触发点击document.body.appendChild(ele);ele.click();// 然后移除document.body.removeChild(ele);}

关键代码就是 ele.target="_blank"

加上这一句之后,点击导出按钮,会弹出一个新的标签页然后马上消失,同时在页面出现下载对话框,本页面也不会跳转了。

顺便附上,如何让浏览器强制下载它能识别并预览的文件,让后台兄弟们加一句这个:

response.setHeader(“content-disposition”, “attachment;filename=” + realName);

// 强制浏览器下载
response.setHeader("content-disposition", "attachment;filename=" + realName);
// 浏览器尝试打开,支持office online或浏览器预览pdf功能
response.setHeader("content-disposition", "inline;filename=" + realName);

此处附上这个tip的原文链接:
https://blog.csdn.net/myth_g/article/details/79650605

使用a标签下载文件,解决页面跳转的问题相关推荐

  1. js下载文件及前端使用a标签下载文件download属性失效问题

    通常下载通过document.createElement创建虚拟a标签 function downloadFileUrl(val, url, fileName) {if (isVal) return ...

  2. 微信无法下载文件做提示跳转到浏览器

    问题分析 当我们在微信内分享链接或二维码的时候,我们会发现我们的网站是可以在浏览器里正常打开的,但就是不能在微信里打开,提示 " 已停止访问该网页 ",无论是聊天框也一样.说是系统 ...

  3. Python-Flask入门,静态文件、页面跳转、错误信息、动态网页模板

    Python-Flask入门及路由基础请参看Python-Flask入门,路由route.项目启动.修改网址端口.获取URL地址和参数.Form数据_无敌路路帅气的博客-CSDN博客 本节重点讲述静态 ...

  4. 使用a标签下载文件,浏览器会直接打开解决方案

    使用a标签下载文件,浏览器会直接打开解决方案 背景 一.HTML中的a标签实现点击下载 二.即使使用a标签的download属性,chrome浏览器还是会打开 三.解决方案 解决方案一:使用ajax请 ...

  5. django解决页面跳转问题

    django解决页面跳转问题 参考文章: (1)django解决页面跳转问题 (2)https://www.cnblogs.com/studong/p/9181524.html 备忘一下.

  6. a标签下载文件,js/jq创建a标签导出Excel文件

    a标签下载文件,js/jq 创建a标签导出Excel文件 1.设置dom(html) <button type="button" class="layui-btn ...

  7. js请求返回一个页面html页面跳转页面,JS cookie操作 解决页面跳转返回

    在HTML中,页面跳转后,js和HTML都会刷新,这样数据就会初始化,如果要解决页面跳转互传数据,可以考虑cookie. 对于页面跳转,然后页面返回等一系列操作,cookie中数据模拟堆栈出栈可以实现 ...

  8. uni中使用select标签后生成APP页面跳转空白

    uni中使用select标签后生成APP页面跳转空白 最近再用webstrom时,写uni APP时发现一个问题 当生成apk后,带有select选择器标签的页面突然无法显示一片空白. 报错显示:Ca ...

  9. a标签点击中文文件名乱码_a 标签下载文件并解决中文乱码问题

    /** * 下载文件 *  文件名中不能包含可疑字符 * @return */ public String download() { response = getResponse(); request ...

  10. jsp + servlet 通过a 标签下载文件

           在开发项目时遇到,在jsp 中通过 a 标签的方式,访问后台servlet,调用 客户端以下载的方式打开文件,遇到中文文件名乱码,找不到问题,导致下载失败问题,弄了很久才弄出点样子,不是 ...

最新文章

  1. 浏览器端JS导出EXCEL
  2. 有趣的c语言程序Code,一个有趣的小程序
  3. MOSS007 服务器的配置
  4. jquery选择器:与、或逻辑
  5. Visual Studio 2005中C++的变化
  6. Win8.1 JAVA环境配置全过程
  7. 历时3个月,我们是如何为一个开源项目集资300万美元的?
  8. JavaScript中的字面量
  9. 1.2 Linux的网络配置和连接工具
  10. python井字棋如何判断输赢_python 井字棋游戏 简单版,不知道为什么不判断,用Tkinter做的界面...
  11. Oracle的常用修改表及字段的语句
  12. 第五章 APP元素定位
  13. 网络拓扑图自动生成_SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer
  14. 企业信息化战略与实施(2)信息系统生命周期与战略规划方法
  15. 手机html己停用怎么办,iphone手机出现已停用请五分钟再试怎么办
  16. Linux cp 复制文件强制覆盖的用法
  17. 有甲乙丙丁四个字,取出任意三个字,打印所有可能性
  18. 基于JavaFx的通讯录
  19. win10任务栏怎么还原到下面_Win10如何快速显示桌面?
  20. 开源LLM领域变天!LLaMa惊天泄露引爆ChatGPT平替狂潮

热门文章

  1. Android 签名板
  2. hadoop安装配置实验报告
  3. 毫米波雷达信号处理系统
  4. tiff怎么批量转化成jpg或png?
  5. PHP开发环境准备,PHPWAMP使用,图文教程
  6. 【大一期末项目】qqclienkey利用:基于qqclientkey的纯c++项目实践
  7. 微服务架构【技术点3】--- [初级] windows下zookeeper的配置+dubbo服务提供者端+dubbo消费者端配置
  8. 机器学习(ML)在材料领域应用专题
  9. 名编辑电子杂志大师教程 | 菜单设置
  10. 超级搜索术-读书笔记