zoukankan      html  css  js  c++  java
  • Javascript&Html-弹出窗口的屏蔽程序

      大多数的浏览器都内置了弹出窗口的屏蔽程序,即使没有内置此类屏蔽程序的浏览器,用户也可以安装Yahoo tool等带有内置屏蔽程序的应用工具。 结果就是用户可以将绝大多数弹出窗口屏蔽掉。 于是,再弹出窗口的时候,就应该考虑两种可能性。 如果是内置的屏蔽程序组织了弹出窗口,那么window.open()就可能会返回null 。此时,只要检测这个返回值就可以确定弹出窗口是否被屏蔽了。如下面的例子所示。

      var newOpenWin = window.open("http://www.baidu.com","_blank");

      if(newOpenWin == null)

      {

        alert("the  popup was blocked !");

      }

      但是如果是浏览器扩展或者其他的工具或者程序阻止了弹出窗口,那么window.open()就会抛出一个错误。 因此要想准确的检测弹出窗口是否被屏蔽,必须再检测返回值的同时,将会window.pen()的调用封装在一个try-catch 块中。 如下所示。

      var blocked = false;

      try

      {

        var m_win = window.open("http://www.baidu.com","_blank");

        if(m_win == null)

        {

          blocked = true;

        }

      }catch(ex)

      {

        blocked = true;

      }

      if(blocked)

      {

        alert("the popup was blocked ");

      }

      再任何的情况下,以上代码都会检测出调用window.open()打开的弹出窗口是否被屏蔽了。 但是这里有一点是需要注意的是,检测弹出窗口是否被当前的浏览器屏蔽掉了,但是它并不会组织浏览器显示与被屏蔽的弹出窗口有关的消息。

        

      

     

    Jason

    2014年02月18日 

      

  • 相关阅读:
    OKHttp使用详解
    spring okhttp3
    HTTPS SSL/TLS协议
    springboot @scheduled 并发
    spring @Scheduled 并发
    CORSFilter 跨域资源访问
    定时任务 spring @Scheduled注解
    spring proxy-target-class
    iOS 适用于Pad上的菜单弹出界面-最简单的一种实现记录
    Mac系统清理、占用空间大、空间不够、查看系统文件大小分布
  • 原文地址:https://www.cnblogs.com/xingchen/p/3553907.html
Copyright © 2011-2022 走看看