无意中见到淘宝的弹出广告,心里嘀咕,现在弹窗不是大都被浏览器给屏蔽了么?
查看源码,找到一串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水平不行,以上代码只是大概看懂,或许理解有误。
分享到:
相关推荐
window.open使用方法以及参数说明一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open(pageURL,name,parameters) 其中: pageURL 为子窗口路径 name 为子窗口...
JavaScript中Window.open参数详解 1、最基本的弹出窗口代码 2、经过设置后的弹出窗口 3、用函数控制弹出窗口 4、同时弹出2个窗口 5、主窗口打开文件1.htm,同时弹出小窗口page.html ...
window.open()和window.showModalDialog(),并解决了showModalDialog()弹出窗口中列表分页的问题。 提供了三个JS方法: (1)showWindow(sURL, width, height); (2)showWindowInPage(pageUrl, params, title, ...
本文较为详细的分析了JavaScript中window.open用法。分享给大家供大家参考。具体如下: 代码如下:[removed] window.open (‘page.html’, ‘newwindow’, ‘height=100, width=...window.open 弹出新窗口的命令;
1> window.showModalDialog()采用JS原理实现,同时父窗口不可操作,window.open()采用新创建一个窗口,同时父窗口可操作; 2> 父窗口与子窗口传递值的方式也有所不同,在子窗口中操作父窗口也语法也不同,分别为var...
解决window.open打开的页面会保存缓存的问题。 在页面的head标签中加入以下代码 代码如下: <meta http-equiv=”Pragma” content=”no-cache” /> <meta http-equiv=”Cache-Control” content=”no-cache...
Javascript弹出窗口,弹出对话框,仿VISTA风格,本程序为模拟WEB弹出窗口和对话框提供一种方案。程序基于 JavaScript/XHTML/CSS 标准实现,适应广泛的服务器/浏览器环境,支持自由度极高的窗口样式定制;交互方面提供...
另外,可以发现,当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了。 原因分析&深入研究 当浏览器检测到非用户操作产生的新弹出...
受到( 启发。 特征 仅2.68KB (已压缩!)。 支持完整的window.open api 。... 装入<NewWindow>将打开一个弹出窗口。 卸载后,弹出窗口将关闭。 children内容将呈现到新的弹出窗口中。 在这种情况下, Hi
一、代码示例 代码如下: window.... 二、命令解析 window.open 弹出新窗口的命令 page.html 弹出窗口的文件名 newwindow 弹出窗口的名字(不是文件名),非必须,可用空”代替 height=100 窗口高度 width=400 窗口宽度
这里介绍了chooseCancelOnNextConfirmation、chooseOkOnNextConfirmation等JavaScript脚本实现的弹出窗口处理函数,selenium会弹出网页窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot....
我现在要说的是window.open函数的几个使用策略,一般情况下,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,认为你将弹出广告等用户不想得到的窗体,所以如果不想让浏览器拦截你,你...
弹出通过 window.open() 创建原生弹出窗口的组件
【1、最基本的弹出窗口代码】 代码如下: [removed] <!– window.open (‘page.html’) –> [removed] 因为着是...window.open (‘page.html’) 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同
JS弹出模态窗体,WIND.one p opne
支持遮罩、拖动、嵌入页面、换肤等实用功能 调用简单,注释简明,更有详细样例! 支持ie、firefox、chrom
【1、最基本的弹出窗口代码】 其实代码非常简单: [removed] <!– window.open (‘page.html’) –> [removed] 因为着是一... window.open (‘page.html’) 用于控制弹出新的窗口page.html,如果page.htm
1.js 代码如下:[removed] function openwindow(url,name,iWidth,iHeight) { // url 转向网页的地址 // name 网页名称,可为空 // iWidth 弹出窗口的宽度 // iHeight 弹出窗口的高度 //window.screen.height...