说明:从网上找到的代码,但是由于种种原因,我引用的时候,已经无法运行。费时半个多小时,总算修正过来了。
源作者:不详。似乎和这个网站有
主要修正内容:
1、“<”和“>”改为<和>
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 >
// 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 >