检测浏览器是否自动屏蔽了弹出窗口

现在类似Google Toolbar的工具条几乎都提供了弹出窗口阻挡的功能,但是在实际WEB开发工作中许多情况下还是需要自动谈出窗口,因此需要检测并提醒用户禁用该功能。

在使用MSN Webmessenger时,发现它可以告诉我使用了弹出窗口阻挡功能,在分析它的代码后,提取出下面的程序,可以直接在自己的项目中使用,经过检验,确实可以检测到IE中google等工具条的阻挡情况,但是GoSurf等多线程浏览器的阻挡弹出页面阻挡却没有检测出来,我将使用多种浏览器做一个测试,将结果加上来。

 

None.gif <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
None.gif
< HTML >< HEAD >< TITLE > 弹出窗口检查 </ TITLE >
None.gif
< META  http-equiv =Content-Type  content ="text/html; charset=utf-8" >
None.gif < SCRIPT language = javascript >
None.gif
function  openwindow(u,n,w,h)
None.gif{
None.gif    
var  optionstring  =   " height= "   +  h  +   " ,width= "   +  w  +   " ,menubar=no,titlebar=yes,resizable=yes,scrollbars=no,status=no,toolbar=no " ;                        
None.gif    window.open(u,n,optionstring);
None.gif}
None.gif
None.gif
var     spbw  =   false ;
None.gif
function  ShowBlockerWarning()
None.gif{
None.gif    
return  spbw;
None.gif}
None.gif
None.gif
function  Init()
None.gif{
None.gif    
if  ( true   ==  Detect())
None.gif    {
None.gif        spbw 
=   true ;
None.gif    }
None.gif}
None.gif
None.gif
function  Detect()
None.gif{
None.gif    
var  e  =   false ;
None.gif    
var  pw1  =   null ;
None.gif    
var  pw2  =   null ;
None.gif    
try
None.gif    {
None.gif        
do
None.gif        {
None.gif            
var  d  =   new  Date();
None.gif            
var  wName  =   " ptest_ "   +  d.getTime();
None.gif            
var  testUrl  =  IsYBI()  ?   " popupTest.aspx "  :  "" ;
None.gif
None.gif            pw1 
=  window.open(testUrl,wName, " width=0,height=0,left=5000,top=5000 " , true );
None.gif            
if  ( null   ==  pw1  ||   true   ==  pw1.closed)
None.gif            {
None.gif                e 
=   true ;
None.gif                
break ;
None.gif            }
None.gif            pw2 
=  window.open(testUrl,wName, " width=0,height=0 " );
None.gif            
if  ( null   ==  pw2  ||   true   ==  pw2.closed)
None.gif            {
None.gif                e 
=   true ;
None.gif                
break ;
None.gif            }
None.gif            
if  (IsYBI())
None.gif            {
None.gif                
if  (pw1  !=  pw2)
None.gif                {
None.gif                    e 
=   true ;
None.gif                    
break ;
None.gif                }
None.gif            }
None.gif            pw1.close();
None.gif            pw2.close();
None.gif            pw1 
=  pw2  =   null ;
None.gif        }
None.gif        
while ( false );
None.gif    }
None.gif    
catch (ex)
None.gif    {
None.gif        e 
=   true ;
None.gif    }
None.gif    
if  ( null   !=  pw1)
None.gif    {
None.gif        
try  {  if  ( ! pw1.closed) pw1.close(); }  catch (ex){}
None.gif    }
None.gif    
if  ( null   !=  pw2)
None.gif    {
None.gif        
try  {  if  ( ! pw2.closed) pw2.close(); }  catch (ex){}
None.gif    }
None.gif    
return  e;
None.gif}
None.gif
None.gif
function  IsYBI()
None.gif{
None.gif    
var  i  =   false ;
None.gif    
try
None.gif    {
None.gif        
var  xObj  =   new  ActiveXObject( " YBIOCtrl.CompanionBHO " );
None.gif        
if  (xObj == null ) i  =   false ;
None.gif        
else  i  =   true ;
None.gif    }
None.gif    
catch (ex) { i  =   false ; }
None.gif    
return  i;
None.gif}
None.gif
None.gifInit();
None.gif
None.gif
</ SCRIPT >
None.gif
None.gif
None.gif
< SCRIPT language = javascript >
None.gif
var  warningMessage  =   " 检查到使用了弹出窗口阻挡器!Pop-up blocker detected. " ;
None.gif
var  warningInformation  =   " 请确保浏览器允许本网站打开弹出窗口。 " ;
None.gif
var  g_blockerHtml;
None.gifg_blockerHtml  
=   " <div><table border=1 cellspacing=0 cellpadding=0> " ;
None.gifg_blockerHtml 
+=   " <tr><td> "   +  warningMessage  +   " </td></tr> " ;
None.gifg_blockerHtml 
+=   " <tr><td> "   +  warningInformation  +   " </td></tr> " ;
None.gifg_blockerHtml 
+=   " </table></div> " ;
None.gif
</ SCRIPT >
None.gif
None.gif
< SCRIPT language = javascript >
None.gif
None.gif
var  messengerWindow  =   null ;
None.gif
function  OnLoad_WelcomePage()
None.gif{
None.gif        
if  ( ShowBlockerWarning() )
None.gif        {
None.gif            
var  messageObject  =  document.getElementById( " noPopHtml " );
None.gif            
if  ( null   !=  messageObject)
None.gif            {
None.gif                messageObject.innerHTML 
=  g_blockerHtml;
None.gif            }
None.gif        }
None.gif}
None.gif
</ SCRIPT >
None.gif
None.gif
</ HEAD >
None.gif
< BODY  onload =OnLoad_WelcomePage();>
None.gif
None.gif
<SPAN  id =noPopHtml>
None.gif
None.gif
</BODY >
None.gif
</ HTML >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值