淘宝首页的JS弹出广告window.open

无意中见到淘宝的弹出广告,心里嘀咕,现在弹窗不是大都被浏览器给屏蔽了么?

查看源码,找到一串JS代码,不知道是淘宝故意的还是咋的,那段JS没有格式化,看了一半看不下去了,找了个格式化JS的工具JS Code Improver

找到其中弹窗的那块:

FP.popupAD=(function()
{
var d=YAHOO.util.Dom,a=YAHOO.util.Event;
var g="_tb_defaultbackpop_", e="http://www.taobao.com/promotion/defaultbackpop.html";

var c=function()
{
var j=new Date();
var k=j.getHours()*3600+j.getMinutes()*60+j.getSeconds();
var m=24*3600;
var l=m-k;
var i=(function()
{
var n=TB.bom.getCookie(g)||0;
n>3?n=3:n=parseInt(n)+1;
return n
})();
.bom.setCookie(g,i,l/m,TB.bom.pickDocumentDomain(),"/")
};

var b=function()
{
var i=window.open("about:blank","_backad","width=760,height=480,toolbar=no,location=no,directories=no,status=yes,resizable=no,scrollbars=no");
i.blur();
i.opener.focus();
i.location=e
};

var f=function()
{
try
{
b()
}
catch(i)
{
a.on(document,"click",h)
}
finally
{
c()
}
};

var h=function(i)
{
try
{
var k=a.getTarget(i);
if(k.id==="header"||d.isAncestor("header",k)||Array.indexOf(["input","select","option","button"],k.nodeName.toLowerCase())!=-1)
{
return
}
}
catch(j)
{
}
a.removeListener(document,"click",arguments.callee);
try
{
b()
}
catch(j)
{
}
};

return
{
init:function()
{
a.on(window,"load",function()
{
var i=TB.bom.getCookie(g)&1;
if(i==1)
{
return
}
setTimeout(f,2000)
}
)
}
}
}
)();

FP.popupAD.init();


主要功能看了基本也就明白:
1、默认弹出pop
2、如果被拦截了,触发鼠标的click事件,然后弹出
3、弹出后设置本地cookie,一天只弹出一次,即有了弹窗的广告效果,又不会让用户感到厌烦,果然是够人性化

本人JS水平不行,以上代码只是大概看懂,或许理解有误。

你可能感兴趣的:(淘宝首页的JS弹出广告window.open)