js防止浏览器拦截新窗口弹出
项目需求要在新窗口打开链接,但被拦截了
1.问题
- 需要在ajax回调中在新窗口打开页面
- 在浏览器开启拦截弹窗时,
window.open(src, "_blank");
这个会被拦截
2.发现
浏览器会拦截所有非用户触发的新窗口打开页面(js的跳转)
判断浏览器是否打开新窗口的代码
不兼容
- js代码
var flag = false; try{var winSrc = window.open("https://www.csdn.net/","_blank");if(winSrc == null){flag = true;} }catch(e){flag = true; } if(flag){console.log("window.open()为null") }
- 检验效果
- pc端,检测了几个浏览器,都是ok的
- 苹果端,用这个判断是ok的
- 安卓端,会显示被拦截,但是flag为false,winSrc不为null
延迟这个打开操作
无效
setTimeout('window.open(url);', 500); // 延迟时间不能太短 否则也会被拦截
3.解决办法
- 弹窗,按钮使用a标签,在新窗口打开页面
不区分浏览器,需要在ajax回调中在新窗口打开页面时,都弹出一个弹窗(包含a标签按钮),修改a标签的src,引导用户点击按钮,实现防止浏览器拦截新窗口弹窗的功能
4.例子
- html代码
<div class="pop"><div class="box"><p class="text01">订单创建成功</p><p class="text02">请前往订单页面查看信息</p><div class="boxBtn"><a class="boxBtnCheck" target="_blank" href="">查看订单</a></div></div>
</div>
- js代码
//ajax回调中使用
$('.boxBtnCheck').attr('href', res.data)
$('.pop').show()//兼容的弹窗 关闭
$('.boxBtnCheck').click(function () {$('.pop').hide()
});
5.参考文章
- JS检测浏览器弹出窗口是否被屏蔽
- window.open(url)打开链接被浏览器拦截解决方案
js防止浏览器拦截新窗口弹出相关推荐
- js控制浏览器窗口弹出、警告框、确认框
描述 js控制浏览器窗口弹出.警告框.确认框 代码 function fun1(){alert("喜欢我"); }function fun2(){var bo = confirm( ...
- ie浏览器自动拦截html,win10系统下IE浏览器总是阻止页面窗口弹出怎么办
不少朋友在使用ie浏览器浏览网页时都遇到过页面被阻止,弹不出来的问题,并且还会提示"Internet Explorer 已对此页面进行了修改,以帮助阻止跨站脚本.单击此处,获取详细信息... ...
- css关闭窗口按钮的代码,JS+CSS实现带关闭按钮DIV弹出窗口的方法
这篇文章主要介绍了JS+CSS实现带关闭按钮DIV弹出窗口的方法,实例分析了div弹出层窗口的实现技巧,非常具有实用价值,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了JS+CSS实现带关 ...
- php 弹窗代码大全,PHP_asp.net弹出窗口代码大全,//关闭,父窗口弹出对话框,子窗 - phpStudy...
asp.net弹出窗口代码大全 //关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write(""); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 th ...
- 手机uc新窗口打开的html标签,在电脑UC浏览器的新窗口页中如何打开书签
在电脑UC浏览器的新窗口页中如何打开书签 UC浏览器是一个很不错的查询资料的软件,我们可以在UC浏览器的新标签页中打开书签,那么如何打开呢?小编就来为大家介绍一下吧. 具体如下: 1. 第一步,双击并 ...
- java弹出浏览器提示框_js弹出框、对话框、提示框、弹窗总结
一.JS的三种最常见的对话框 //====================== JS最常用三种弹出对话框 ======================== //弹出对话框并输出一段提示信息 funct ...
- CHtmlView当前浏览器打开新窗口
在自己编写的浏览器软件中,对于在新窗口打开的页面默认调用系统默认浏览器打开,而不是在当前浏览器中打开,以下在MDI中调用OnNewWindow2实现在自己的浏览器中新窗口打开,原理即是修改OnNewW ...
- 搜狗服务器页面找不到了怎么办,Win10系统 搜狗浏览器打不开弹出无法解析服务器的DNS地址该如何处理...
导语:搜狗浏览器能够给我们带来很棒的网页浏览体验,功能也十分强大.不过,最近一些win10系统用户反馈自己打开网页提示页面找不到了- 错误信息:如法解析服务器的dns地址,碰到这样的情况我们该怎么办呢 ...
- Js+DVML:很酷实用的右键弹出菜单
<HTML xmlns:v><HEAD> <head> <meta http-equiv="Content-Type" content=& ...
最新文章
- 随记:kickstart远程批量无人值守安装linux
- chm文件无法正常显示
- 通过先序和中序数组生成后续数组
- JAVASE_File类(实践)——目录拷贝
- ITK:建立一个Hello World程序
- “脚踢各大Python Web框架”,Sanic真有这能耐么?
- cnpm 网络不能连接_(二十七)通俗易懂理解——Resnet残差网络
- ios 高德地图加载瓦片地图_IOS 高德地图 API 加载 WMS 服务
- 安装出现 PHP Extension curl must be loaded 错误(magento)
- 团队开发冲刺1.2(2015.5.10)
- 那些一心想要离开 BAT 的人,后来怎么样了?
- 比较nio大体上优于io的方面
- 基于机器视觉的电阻焊接质量检测
- 在没有创建Provision Profile权限的情况下 发布Enterprise inhouse app 的方法
- dea分析的matlab实现,利用MATLAB进行DEA交叉评价分析
- python百度文库源码_Python源码剖析3
- 千万级数据清洗ETL设计方案
- 陕西中医药有计算机系吗,校内制度 - 陕西中医药大学信息化建设管理处
- 5 Linux系统编程之网络编程--学习笔记
- 阿里数据中台维度建模规范、维度模型设计及模型实施方法论