大多数的浏览器都内置有弹出窗口屏蔽程序。而没有内置此类程序的浏览器,也可以通过安装Yahoo!Toolbar等带有内置屏蔽程序的实用工具。这样做的结果就是用户可以将绝大多数不想看到的弹出窗口屏蔽掉。

于是,在弹出窗口被屏蔽时,就应该考虑两种情况。

如果是浏览器内置程序屏蔽了弹出窗口,那么 window.open() 很可能返回Null。
只要检测这个返回值就能确定弹出窗口是否被屏蔽。如下:

 var wroxWin = window.open("http://www.wrox.com","_blank");if (wroxWin == null){alert('屏蔽了弹出窗') }

如果是浏览器扩展或者插件进行组织窗口弹出,那么window.open()通常会抛出异常,因此,需要将代码放到try-catch里面。如下:

 var blocked = false;try{var wroxWin = window.open("http://www.wrox.com","_blank");if (wroxWin == null){blocked = true;}catch(ex){blocked = true;}}if(blocked){alert("屏蔽了弹出窗")   }

在任何情况下,以上代码都能检测出调用 window.open() 打开的弹出窗是否被屏蔽。但需要注意的是,检测弹出窗口是否被屏蔽是一方面,他并不会阻止浏览器显示与被屏蔽的弹出窗口有关的消息。

BOM引导——浏览器屏蔽弹出窗口的办法以及检查是否屏蔽的方法。相关推荐

  1. Angular2项目中浏览器拦截弹出窗口的解决方法

    Angular2项目中浏览器拦截弹出窗口的解决方法 为什么把项目是Angular2的放到了前边? 因为正常也页面网上已经很多解决方案.请自行百度或Google. 现象:当window.open为用户触 ...

  2. 解决浏览器拦截弹出窗口问题

    解决浏览器拦截弹出窗口问题 参考文章: (1)解决浏览器拦截弹出窗口问题 (2)https://www.cnblogs.com/goloving/p/9721210.html 备忘一下.

  3. 关于浏览器拦截弹出窗口问题的解决方法

    关于浏览器拦截弹出窗口问题的解决方法 正常对于浏览器新开窗口有三种方式 1.html里a标签的target属性 2.javascript的window.open()方法 3.html里form表单的t ...

  4. php屏蔽弹出窗口,可以不被浏览器拦截的弹出窗口JS代码

    转载: 一个强制弹出窗口的JavaScript类:ForceWindow 一个可以不被广告拦截器拦截的弹出窗口 ForceWindow.iclass.js代码如下(使用.讲解.相关说明全部在注释中): ...

  5. python selenium 处理弹窗_python 让selenium(webdriver ) 不打开浏览器(弹出窗口)运行(静默模式启动)...

    什么是 Headless Chrome Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序.相比于现代浏览 ...

  6. window.open() 某些情况会被浏览器阻止弹出窗口

    window.open() 的作用是创建一个新的浏览器窗口用来打开相关的资源,这是一个原生的 Javascript API 接口.有关 window.open() 的基本使用可以参考 mozilla ...

  7. window.open() 某些情况会被浏览器阻止弹出窗口及解决办法

    window.open() 的作用是创建一个新的浏览器窗口用来打开相关的资源,这是一个原生的 Javascript API 接口. 有关 window.open() 的基本使用可以参考 mozilla ...

  8. 浏览器拦截弹出窗口 IE Firefox……浏览器

    2019独角兽企业重金招聘Python工程师标准>>> 如果您需要在弹出新窗口一次,可用代码: <form id="openWin" action=&quo ...

  9. 如何解决浏览器弹出窗口的拦截

    问题 有时候在开发业务时,由于产品体验,要求自动打开新窗口,而不希望用户手动点击. 直接在代码中执行: window.open('http://www.baidu.com') 是会被浏览器拦截的,浏览 ...

最新文章

  1. 学习数据科学、机器学习与AI没有多大交集,一文告诉你三者最大区别
  2. ASP.Net定时任务执行
  3. C语言经典例71-编写函数输出结构体数据
  4. 25 linux ndk 头文件_正点原子Linux第二十五章RTC实时时钟实验
  5. CF1580C Train Maintenance(分块)
  6. 大数据学习要知道的十大发展趋势,以及学习大数据的几点建议
  7. GitHub.com上的那些东西你都知道什么意思吗?
  8. TensorFolw 报错
  9. ios 图片居中裁剪_[ iOS Shortcuts / Workflow ] 分享一个给照片批量加「底部居中偏上」水印的捷径,可适应不同水印的尺寸...
  10. MySQL CAST与CONVERT 函数的用法
  11. java.util.enummap_java.util.EnumMap.clone()方法实例
  12. C++编程问题--注意指针参数的传递
  13. linux变utf8为sjis命令,【通译】PHP中 文字编码变换时 使用SJIS-win而非SJIS,使用eucJP-win而非EUC-JP...
  14. python wget_python wget下载文件处理的一些问题
  15. 手机软件设计大赛报名信息
  16. 我在上海奋斗五年 从月薪3500到700万
  17. apicloud菜鸟教程_APICloud 对象之 Method
  18. 为什么网上都说 AirPods 3 音质不如AirPods Pro?
  19. Python可视化|matplotlib05-绘图风格大全
  20. SAP S4 FI后台详细配置教程- PART5 (应收帐目和应付帐目配置篇)

热门文章

  1. Mac 下导出ANR错误日志
  2. 隧道内车辆精确定位方案
  3. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-936 砝码称重
  4. 摄影测量实习空中三角测量_摄影测量入门:Photoscan
  5. 新财报不及预期股价盘后大跌11%,腾讯音乐为何会失算?
  6. Python learning- Loops and Iteration Strings Reading Files
  7. linux卸载软件maven,linux/mac下一键删除下载失败的maven jar包
  8. python做生存分析
  9. jango-简单的mixin扩展类
  10. VS Code代码高亮颜色设置