弹窗代码以及弹不出来的原因分析

来源:互联网 发布:windows 的平板推荐 编辑:程序博客网 时间:2024/04/29 19:40

这两天,在网上搜索一些关于网站弹窗的代码。由于许多原因,会导致弹窗弹不出来。这儿,我大致将各种弹窗代码进行归类,然后说说对弹不出来的原因的分析。

    弹窗代码类型:

    1、直接弹代码

    <BODY onLoad="javascript:popUp()">

    <SCRIPT LANGUAGE="JavaScript">
   function popUp() {
    props=window.open('http://dn58.net, 'poppage', 'toolbars=1, scrollbars=1, location=1, statusbars=1, menubars=1, resizable=1, width=1280, height=800');
}
</script>

    分析:直接弹代码放在 body 里面,以onload 和 unload 调用。这种代码,在浏览器执行 body 里就会出现提示窗口。现在一般不用了。

    2、eval 事件监视的方式弹出,代码如下:

 <script type="text/javascript"> 
function openurl() 

//需要打开的地址 
koyoz.launchURL('http://dn58.net'); 

function openinit() 

document.body.innerHTML += '<object id="koyoz" width="0" height="0" classid="CLSID:6BF52A52-394A-11' + 'D3-B153-00C04F79FAA6"></object>'; 

eval("window.attachEvent('onload',openinit);"); 
eval("window.attachEvent('onunload',openurl);"); 
</script> 

    分析:这种方法弹出效果好,但是,测试过程中,安装360杀毒软件之后就弹不出来了。安装360安全卫士及其它的杀毒软件都可以。

    4、以设置焦点的方式,通过cookie 记录,定时弹。代码如下:

<Script Language="JavaScript">

function setCookie(name, value, expire) {
window.document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}

function getCookie(Name) {
var search = Name + "=";
if (window.document.cookie.length > 0) { // if there are any cookies
offset = window.document.cookie.indexOf(search);
if (offset != -1) { // if cookie exists
offset += search.length; // set index of beginning of value
end = window.document.cookie.indexOf(";", offset) // set index of end of cookie value
if (end == -1)
end = window.document.cookie.length;
return unescape(window.document.cookie.substring(offset, end));
}
}
return null;
}


function register(name) {
var today = new Date();
var expires = new Date();
expires.setTime(today.getTime() + 1000*60*60*24);
setCookie("computer58", name, expires);
}


var exitURL="http://dn58.net";

function openWin() {

var c = getCookie("computer58");
if (c != null) {
return;
}
register("computer58");


var featureStr="";

featureStr="'top=0,left=0,width=800,height=600,toolbar=yes, menubar=no, scrollbars=no, resizable=no, location=no, status=no,center:no'";

self.focus();

var ExitWindow = window.open(exitURL,"", featureStr);

ExitWindow.focus();

}

openWin();
window.focus()
</Script>
    分析:以上代码,其实弹出代码还是windows.open ,意义并不大。只是通过cookie的方式,可以设置一天只弹一次的效果。

    5、定义object 后弹出。代码如下:

    // JavaScript Document
<!--
var u = "6BF52A52-394A-11D3-B153-00C04F79FAA6";

function ext()          //在关闭IE窗口的时候弹出
{
if(window.event.clientY<132 || altKey) iie.launchURL(popURL);
}

function brs()       //插入Object
{
document.body.innerHTML+="<object id=iie width=0 height=0 classid='CLSID:"+u+"'></object>";
}


var popURL = 'http://dn58.net';    //这里修改成你的退弹网址

eval("window.attachEvent('onload',brs);");
eval("window.attachEvent('onunload',ext);");


//-->

 在需要调用的时候:   <script language='Javascript' src='test2.js'></script>

    分析:以上弹出采用的是object定义后,再弹出,或许可以逃过一些杀毒软件的拦截。

    以上弹窗代码效果,如果你在使用过程中遇到了什么问题,希望给我留言。

    弹窗弹不出来的原因分析:

    1、直接弹的代码,会被普通的IE拦截。

    2、其它隐藏的方式,会被工具软件和杀毒软件拦截。

    3、我自己试了,申请的虚拟主机,如果用临时域名,也弹不出来,不知道是什么原因。而用自己申请备案后的域名就可以弹出了。

    4、以上弹窗代码可以在IE8.0 及其他许多浏览器下弹出。

文章来自: 电脑快车(http://dn58.net) 详文参考:http://www.dn58.net/htm/wangzhanjianshe/xuexifankui/1148.Htm