百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> js 判断弹出窗口是否被屏蔽程序代码
分享文章到:

js 判断弹出窗口是否被屏蔽程序代码

发布时间:01/15 来源: 浏览: 关键词:
弹出窗口是否被屏蔽这个对于各种做弹窗的广告商来讲是一个必须了解的知识,我在做一个网站后置弹窗时就需要知道进来的人是否都弹出窗口了,然后给予判断,下面我找了几段js代码,下面与大家分享一下。

大多数浏览器都内置有弹出窗口屏蔽程序,在弹出窗口被屏蔽时,就应该考虑两种可能性。如果是浏览器内置的屏蔽程序阻止的弹出窗口,那么window.open()很可能返回null。此时,只要检测这个返回的值就可以确定弹出窗口是否被屏蔽了,如下面的例子所示:

 代码如下

var wroxWin = window.open("http://www.111cn.net", "_blank");
if (wroxWin == null) {
    alert("糟糕!弹出窗口被屏蔽了");
}

如果浏览器扩展或其它程序阻止的弹出窗口,那么window.open()通常会抛出一个错误。因此要像准确地检测弹出窗口是否被屏蔽,必须在检测返回值的同时,将对window.open()调用封装在一个try-catch块中,如下所示:

 代码如下

var blocked = false;
try {
    var wroxWin = window.open("http://www.111cn.net", "_blank");
    if (wroxWin == null) {
        blocked = true;
    }
} catch (ex) {
    blocked = true;
}
if (blocked) {
    alert("糟糕!弹出窗口被屏蔽了");
}

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

 

如果浏览器将该弹出窗口实例拦截,window.open()返回的实例将为null,这时再对这个实例执行focus(),必然要抛出异常。这里也可以单纯来比较实例的值来判断,而不用异常。

 代码如下

function testpop(){

var mypop=window.open("http://www.111cn.net","_blank","z-look=yes,menubar=no,toolbar=no, location=no,resizable=yes ,directotries=no,status=no,width=800px,height=600px,scrollbars=no");               

try{           
       mypop.focus();//
     }catch(e){
        alert('blocked');//显示任何你愿意让用户看到的信息
     }

}

ps:ie6.0,7.0,8.0测试通过。在firefox,google chrome设置了禁止弹出后,这个窗口照样弹出,不知为何

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有4人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板