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

本文提供了一段修正后的JavaScript代码,该代码能够在Internet Explorer浏览器中成功打开通常被拦截的弹出窗口。作者修复了原始代码中存在的多个问题,包括特殊字符转义、编码问题以及随机数生成等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

主要修正内容:

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.youkuaiyun.com/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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值