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