文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
document 对象
Window.Open详解
JS replace 方法
JScript 属性
JScript 对象
JScript 方法
关于window.opener的用法
JavaScript语法——style.display 属..
不被拦截的弹出窗口代码
showModalDialog和showModelessDialog..
showModelessDialog()使用详解
IE中非模式对话框(showModelessDialog..
JS eval()函数
Preferences 指南
JS中的setTimeout和setInterval的区别
JavaScript对象与数组参考大全
javascript动态增加、删除、填充表格..
用Java实现几种常见的排序算法
JavaScript 日期函数
JavaScript 使用字符串函数
如何用Javascript获得TextArea中的光..
Document 对象方法
在input中只能输入数字
selection.createRange() 用法例子
获取网页各种宽高的值
JavaScript方法 - indexOf方法
substring函数详解
40种网页常用小技巧(javascript)
event.X和event.clientX有什么区别
clientX, clientY,offsetX, offsetY,..


技术教程 -> JavaScript教程 ->  
不被拦截的弹出窗口代码
来源:转载   人气:1880   录入时间:2007-11-8
    如果不是特殊需求的话,推荐使用隐藏层嵌套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();
   




Copyright(C)2007-2021 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987