不被拦截的弹出窗口代码

作者: 来源: 日期:2007-2-1

以下是转载的内容,因原文内容管理系统的原因,造成代码较为凌乱,请预览经过我们格式调整后的页面

如果不是特殊需求的话,推荐使用隐藏层嵌套IFRAME来代替弹出窗口,我都是这样做的。这样做还有一个好处是页面可以做的很好看,可以和当前页面的风格融洽。

最后友情提供一个能绕过绝大多数拦截插件和防火墙的超强弹出窗口代码,不过比较麻烦,有必要的时候才用: 

下面代码全部复制,弹出网址改成自己要弹出的地址即可。

   var paypopupURL = "http://www./弹出的网址.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://www./弹出的网址.com";}
   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 = ’0’; // random key from server
   var myWindow;
   var popWindow;
   var setupActiveXSuccess = 0;
   // bypass IE functions
   function setupActiveX() {if (usingActiveX) {try{if (setupActiveXSuccess < 5) {document.write(’’);popWindow=window.createPopup();popWindow.document.body.innerHTML=’
   ’;document.write(’’);popIframe.document.write(’’);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(’
   ’);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();

以上是转载的内容,因原文内容管理系统的原因,造成代码较为凌乱,请预览经过我们格式调整后的页面

相关文章