情景:

1、用户发送数据到服务器

2、服务器根据用户的数据生成文档

3、服务器把所生成的文档的下载地址提供给用户

4、用户使用的浏览器自动根据下载地址下载文件

实现:

网上搜索查找了下实现方式,就我查到的大多是这几种。

1、直接使用window.open();   这种方式会被浏览器拦截。

2、构造表单,使用javascript进行表单提交来下载文件(设置表单的action、method、target属性)。 自己尝试了下,在我机器上安装的谷歌直接拦截,IE会提示是否允许。

3、var tempWindow = window.open();

tempWindow.location="your address";

这种方式浏览器依旧会拦截,且会报location未定义错误。

最后:

在某网站看到有网友回复 把ajax设置为同步方式,可以解决,自己试了下,可以实现无弹窗打开新窗口。

demo:

$.ajax({type:'POST',data:send_data,url:'/demoURL',success:function(data, status){if (status === 'success'){window.open(data);}}
});

    

简单到难以置信。不过,实用。

转载于:https://www.cnblogs.com/roadtodream/p/6180127.html

javacript实现不被浏览器拦截打开新窗口相关推荐

  1. 浏览器拦截打开新窗口情况总结

    在打开一个新窗口时,由于浏览器的安全机制,用户未始终允许的情况下,可能会触发到浏览器拦截,无法正常直接弹出. 网上有很多给出解决方案的只言片语,不够全面,所以针对自己遇到的问题做了详细的情况分析.总结 ...

  2. 防止浏览器拦截的新窗口打开链接方案

    背景 当前的浏览器为了保证用户体验,在很多场合下禁止了window.open打开新窗口,下面就给出一些方案,最大程度上的实现新窗口打开一个链接. 方案 //打开新链接方法实现 function win ...

  3. 基于vue,解决打开新窗口被浏览器拦截的问题

    首先,我们先来说一下在什么情况下,新窗口会被阻截,以及阻截的原因. 当使用 window.open(url,"_blank")打开新窗口时,如果url是通过ajax从后台获取 到的 ...

  4. window.open()打开新窗口被浏览器拦截

    原因:在浏览器的安全机制里面,非用户触发的window.open方法,是会被拦截的. 经过实际测试,Chrome.IE不会拦截,FireFox会拦截. //不会被拦截 $('#btn').click( ...

  5. 浏览器拦截js打开新窗口的解决方案

    今天技术大佬问了我一个问题:使用js在浏览器中打开新的窗口,什么时候会被拦截?什么时候不会被拦截? 一下给我问住了······· 于是上网百度的一波~ 常用的两种打开新窗口的方式 window.ope ...

  6. window.open 打开新窗口被拦截的其他解决方法

    使用window.open 打开新窗口容易被浏览器拦截,可以使用下面的方法解决 if ($("#jiedaitype").val() == "1") {     ...

  7. js打开新窗口并且不被拦截

    js打开新窗口并且不被拦截 window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览 ...

  8. js打开新窗口被拦截问题

    打开新窗口的方式主要有 window.open, a标签增加target="_blank"属性,form标签增加target="_blank"属性 用户直接点击 ...

  9. 使用window.open打开新窗口被谷歌浏览器拦截

    在写后台动态传前台资源链接的时候,需要用到,返回后直接在新窗口打开.开发使用的谷歌浏览器,使用window.open(),测试的时候,发现总是被拦截,这这里记录下解决的方法. 找了写资料,说是当非用户 ...

最新文章

  1. python怎么字体加阴影_如何在pythonptx中给文本添加阴影?
  2. iOS HTTP与 HTTPS
  3. 微信APP支付(Java后台生成签名具体步骤)
  4. Java入门算法(双指针篇)丨蓄力计划
  5. css比较特殊选择器汇总(持续更新)
  6. SFB 项目经验-82-Active Directory Replication Status
  7. 镜头像差之二——色差
  8. 带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统
  9. MacOS 下载JDK11 Java
  10. SQL查询语句精华大全
  11. java计算工作日(包含法定节假日和调休)
  12. CasADi——数据类型详解与基本操作介绍
  13. 良田高拍仪接口文档对接
  14. 国内AR智能眼镜发展难点分析
  15. 杰理之设置立体声输出,播左右声道歌曲后DAC没有声音或声音变小
  16. 怎样把游戏从计算机卸载了,电脑桌面上的游戏怎么卸载,电脑桌面上的游戏怎么卸载?...
  17. 关于mplayer dvd seek定位函数dvd_seek_to_time
  18. python3.5变化(String)
  19. 免费自媒体全网平台爆文采集器
  20. [Linux]关于网卡配置文件

热门文章

  1. python四大软件-Python实用模块(二十)Apscheduler
  2. python爬虫正则表达式实例-python爬虫 正则表达式解析
  3. python代码示例图形-Python使用matplotlib绘制三维图形示例
  4. python培训学费多少钱-培训python学费多少python学会得多少钱?
  5. python叫什么-python中什么叫类
  6. python php linux-选择PHP与Python,可以考虑这三个问题
  7. 学python要考什么证-学python需要考证吗?
  8. python 类-Python 类class定义 方法与属性教程
  9. python turtle画气球-如何用python的装饰器定义一个像C++一样的强
  10. python装饰器-python装饰器