修正版!强制弹出窗口代码(xp sp2无法拦截)

 说明:从网上找到的代码,但是由于种种原因,我引用的时候,已经无法运行。费时半个多小时,总算修正过来了。

源作者:不详。似乎和这个网站有

主要修正内容:

1、“&lt;”和“&gt;”改为<和>
2、换行和缩进。
3、因为编码方面的问题,原来的代码始终提示“DATA="' + myurl + '/p”这里有错误。在DW的源代码中是前面的样子,在高度页面的时候就变成了“DATA="'   myurl   '/p”,也就是说里面的两个“+”活生生的没有了!反复测试多次之后,我把页面的编码换成GB2312,总算解决了这个问题。
4、有个地方(见下面)出现乱码,我到引用的页面上也看不出来是什么,我只好改成了“00”。其实它是什么无关紧要,根据程序的功能和源作者注释,可以看得出来这里是要程序员在服务器端生成一个随便数,并写在这里。其它完全可以用JS自己生成。
var randkey = '0';  // random key from server
所以这个地方,还请高手指正!

经过一番努力,代码终于调试通过了,IE无法拦截的弹出窗口!

下面是修正之后的代码。

 

< Script Language = " JavaScript " >
// var paypopupURL = "http://xpnew.blog.163.com";//这里用我的博客测试
var  usingActiveX  =   true ;
function  blockError() {return true;}
window.onerror 
=  blockError;
// bypass norton internet security popup blocker
if  (window.SymRealWinOpen) {window.open = SymRealWinOpen;}
if  (window.NS_ActualOpen)  {window.open = NS_ActualOpen;}
if  ( typeof (usingClick)  ==   ' undefined ' {var usingClick = false;}
if  ( typeof (usingActiveX)  ==   ' undefined ' {var usingActiveX = false;}
if  ( typeof (popwin)  ==   ' undefined ' {var popwin = null;}
if  ( typeof (poped)  ==   ' undefined ' {var poped = false;}
if  ( typeof (paypopupURL)  ==   ' undefined ' {var paypopupURL = "http://blog.csdn.net/xpnew";} // 备用的链接地址
var  blk  =   1 ;
var  setupClickSuccess  =   false ;
var  googleInUse  =   false ;
var  myurl  =  location.href  +   ' / ' ;
var  MAX_TRIED  =   20 ;
var  activeXTried  =   false ;
var  tried  =   0 ;
var  randkey  =   ' 00 ' ;   //  random key from server
var  myWindow;
var  popWindow;
var  setupActiveXSuccess  =   0 ;
//  bypass IE functions
function  setupActiveX() 
{
    
if (usingActiveX) {
        
try{
            
if (setupActiveXSuccess < 5{
                document.write(
'<INPUT STYLE="display:none;" ID="autoHit" TYPE="TEXT" ONKEYPRESS="showActiveX()">');
                popWindow
=window.createPopup();
                popWindow.document.body.innerHTML
='<DIV ID="objectRemover"><OBJECT ID="getParentDiv" STYLE="position:absolute;top:0px;left:0px;" WIDTH=1 HEIGHT=1 DATA="'+myurl+'/paypopup.html" TYPE="text/html"></OBJECT></DIV>';
                document.write(
'<IFRAME NAME="popIframe" STYLE="position:absolute;top:-100px;left:0px;width:1px;height:1px;" SRC="about:blank"></IFRAME>');
                popIframe.document.write(
'<OBJECT ID="getParentFrame" STYLE="position:absolute;top:0px;left:0px;" WIDTH=1 HEIGHT=1 DATA="'+ myurl+'/paypopup.html" TYPE="text/html"></OBJECT>');
                setupActiveXSuccess 
= 6;
            }

        }
catch(e){
            
if (setupActiveXSuccess < 5{
                setupActiveXSuccess
++;
                setTimeout(
'setupActiveX();',500);
            }
else if (setupActiveXSuccess == 5{
                activeXTried 
= true;setupClick();
            }

        }

    }

}

function  tryActiveX() {
    
if (!activeXTried && !poped) {
        
if (setupActiveXSuccess == 6 && googleInUse && popWindow && popWindow.document.getElementById('getParentDiv'&& popWindow.document.getElementById('getParentDiv').object && popWindow.document.getElementById('getParentDiv').object.parentWindow) {
            myWindow
=popWindow.document.getElementById('getParentDiv').object.parentWindow;
        }
else if (setupActiveXSuccess == 6 && !googleInUse && popIframe && popIframe.getParentFrame && popIframe.getParentFrame.object && popIframe.getParentFrame.object.parentWindow){
            myWindow
=popIframe.getParentFrame.object.parentWindow;popIframe.location.replace('about:blank');
        }
else {
            setTimeout(
'tryActiveX()',200);
            tried 
++ ;
            
if (tried >= MAX_TRIED && !activeXTried) {
                activeXTried 
= true;
                setupClick();
            }

            
return;
        }

        openActiveX();
        window.windowFired
=true;
        self.focus();
    }

}

function  openActiveX() {
    
if (!activeXTried && !poped) {
        
if (myWindow && window.windowFired){
            window.windowFired
=false;
            document.getElementById(
'autoHit').fireEvent("onkeypress",(document.createEventObject().keyCode=escape(randkey).substring(1)));
        }
else {
            setTimeout(
'openActiveX();',100);
        }

        tried
++;
        
if (tried >= MAX_TRIED) {
            activeXTried 
= true;setupClick();
        }

    }

}

function  showActiveX() {
    
if (!activeXTried && !poped) {
        
if (googleInUse) {
            window.daChildObject
=popWindow.document.getElementById('objectRemover').children(0);
            window.daChildObject
=popWindow.document.getElementById('objectRemover').removeChild(window.daChildObject);
        }

        newWindow
=myWindow.open(paypopupURL,'abcdefg');
        
if (newWindow) {
            newWindow.blur();
            self.focus();
            activeXTried 
= true;
            poped 
= true;
        }
else {
            
if (!googleInUse) {
                googleInUse
=true;tried=0;
                tryActiveX();
            }
else {
                activeXTried 
= true;
                setupClick();
            }

        }

    }

}

//  end bypass IE functions
//
 normal call functions
function  paypopup() {
    
if (!poped) {
        
if(!usingClick && !usingActiveX) {
            popwin 
= window.open(paypopupURL,'abcdefg');
            
if (popwin) {
                poped 
= true;
            }

            self.focus();
        }

    }

    
if (!poped) {
        
if (usingActiveX) {
            tryActiveX();
        }
else {
            setupClick();
        }

    }

}

//  end normal call functions
//
 onclick call functions
function  setupClick()  {
    
if (!poped && !setupClickSuccess){
        
if (window.Event) document.captureEvents(Event.CLICK);
        prePaypopOnclick 
= document.onclick;document.onclick = gopop;self.focus();
        setupClickSuccess
=true;
    }

}

function  gopop()  {
    
if (!poped) {
        popwin 
= window.open(paypopupURL,'abcdefg');
        
if (popwin) {
            poped 
= true;
        }

        self.focus();
    }

    
if (typeof(prePaypopOnclick) == "function"{
        prePaypopOnclick();
    }

}

//  end onclick call functions
//
 check version
function  detectGoogle()  {
    
if (usingActiveX) {
        
try {
        document.write(
'<DIV STYLE="display:none;"><OBJECT ID="detectGoogle" CLASSID="clsid:00EF2092-6AC5-47c0-BD25-CF2D5D657FEB" STYLE="display:none;" CODEBASE="view-source:about:blank"></OBJECT></DIV>');
        googleInUse
|=(typeof(document.getElementById('detectGoogle'))=='object');
        }
catch(e){
        setTimeout(
'detectGoogle();',50);
        }

    }

}

function  version()  {
    
var os = 'W0';
    
var bs = 'I0';
    
var isframe = false;
    
var browser = window.navigator.userAgent;
    
if (browser.indexOf('Win'!= -1{
        os 
= 'W1';
    }

    
if (browser.indexOf("SV1"!= -1{
        bs 
= 'I2';
    }
else if (browser.indexOf("Opera"!= -1{
        bs 
= "I0";
    }
else if (browser.indexOf("Firefox"!= -1{
        bs 
= "I0";
    }
else if (browser.indexOf("Microsoft"!= -1 || browser.indexOf("MSIE"!= -1{
        bs 
= 'I1';
    }

    
if (top.location != this.location) {
        isframe 
= true;
    }

    paypopupURL 
= paypopupURL;usingClick = blk && ((browser.indexOf("SV1"!= -1|| (browser.indexOf("Opera"!= -1|| (browser.indexOf("Firefox"!= -1));
    usingActiveX 
= blk && (browser.indexOf("SV1"!= -1&& !(browser.indexOf("Opera"!= -1&& ((browser.indexOf("Microsoft"!= -1|| (browser.indexOf("MSIE"!= -1));
    detectGoogle();
}

version();
//  end check version
function  loadingPop()  {
if(!usingClick && !usingActiveX) {
  paypopup();
}

else if (usingActiveX) {tryActiveX();}
else {setupClick();}
}

myurl 
=  myurl.substring( 0 , myurl.indexOf( ' / ' , 8 ));
if  (myurl  ==   '' {myurl = '.';}
setupActiveX();
loadingPop();
self.focus();
</ Script >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值