`

淘宝首页的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水平不行,以上代码只是大概看懂,或许理解有误。
0
0
分享到:
评论

相关推荐

    javascript弹出窗口 window.open使用方法以及参数说明分析篇

    window.open使用方法以及参数说明一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open(pageURL,name,parameters) 其中: pageURL 为子窗口路径 name 为子窗口...

    JavaScript中Window.open参数

    JavaScript中Window.open参数详解 1、最基本的弹出窗口代码 2、经过设置后的弹出窗口 3、用函数控制弹出窗口 4、同时弹出2个窗口 5、主窗口打开文件1.htm,同时弹出小窗口page.html ...

    JS控制弹出页面窗口控件(openWin)

    window.open()和window.showModalDialog(),并解决了showModalDialog()弹出窗口中列表分页的问题。 提供了三个JS方法: (1)showWindow(sURL, width, height); (2)showWindowInPage(pageUrl, params, title, ...

    JavaScript中window.open用法实例详解

    本文较为详细的分析了JavaScript中window.open用法。分享给大家供大家参考。具体如下: 代码如下:[removed] window.open (‘page.html’, ‘newwindow’, ‘height=100, width=...window.open 弹出新窗口的命令;

    showModalDialog open弹出子窗口操作parent、opener父窗口及跨域处理

    1> window.showModalDialog()采用JS原理实现,同时父窗口不可操作,window.open()采用新创建一个窗口,同时父窗口可操作; 2> 父窗口与子窗口传递值的方式也有所不同,在子窗口中操作父窗口也语法也不同,分别为var...

    解决js中window.open弹出的是上次的缓存页面问题

    解决window.open打开的页面会保存缓存的问题。 在页面的head标签中加入以下代码 代码如下: <meta http-equiv=”Pragma” content=”no-cache” /> <meta http-equiv=”Cache-Control” content=”no-cache...

    风声JS弹出层 弹出框插件.rar

    Javascript弹出窗口,弹出对话框,仿VISTA风格,本程序为模拟WEB弹出窗口和对话框提供一种方案。程序基于 JavaScript/XHTML/CSS 标准实现,适应广泛的服务器/浏览器环境,支持自由度极高的窗口样式定制;交互方面提供...

    详解window.open被浏览器拦截的解决方案

    另外,可以发现,当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了。 原因分析&深入研究 当浏览器检测到非用户操作产生的新弹出...

    react-new-window:using使用`window.open`在React中弹出新窗口

    受到( 启发。 特征 仅2.68KB (已压缩!)。 支持完整的window.open api 。... 装入<NewWindow>将打开一个弹出窗口。 卸载后,弹出窗口将关闭。 children内容将呈现到新的弹出窗口中。 在这种情况下, Hi

    JS中window.open全屏命令解析及使用示例

    一、代码示例 代码如下: window.... 二、命令解析 window.open 弹出新窗口的命令 page.html 弹出窗口的文件名 newwindow 弹出窗口的名字(不是文件名),非必须,可用空”代替 height=100 窗口高度 width=400 窗口宽度

    Selenium处理弹出窗口.docx

    这里介绍了chooseCancelOnNextConfirmation、chooseOkOnNextConfirmation等JavaScript脚本实现的弹出窗口处理函数,selenium会弹出网页窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot....

    window.open关于浏览器拦截问题分析及解决方法

    我现在要说的是window.open函数的几个使用策略,一般情况下,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,认为你将弹出广告等用户不想得到的窗体,所以如果不想让浏览器拦截你,你...

    popup:通过 window.open() 创建原生弹出窗口的组件

    弹出通过 window.open() 创建原生弹出窗口的组件

    js中window.open()的所有参数详细解析

    【1、最基本的弹出窗口代码】 代码如下: [removed] <!– window.open (‘page.html’) –> [removed] 因为着是...window.open (‘page.html’) 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同

    SJ模态窗体,WIndow.Open小实例

    JS弹出模态窗体,WIND.one p opne

    js 弹出窗口 弹出div window 支持遮罩、拖动、嵌入页面、换肤等实用功能

    支持遮罩、拖动、嵌入页面、换肤等实用功能 调用简单,注释简明,更有详细样例! 支持ie、firefox、chrom

    window.open的功能全解析

    【1、最基本的弹出窗口代码】 其实代码非常简单: [removed] <!– window.open (‘page.html’) –> [removed] 因为着是一... window.open (‘page.html’) 用于控制弹出新的窗口page.html,如果page.htm

    window.open打开页面居中显示的示例代码

    1.js 代码如下:[removed] function openwindow(url,name,iWidth,iHeight) { // url 转向网页的地址 // name 网页名称,可为空 // iWidth 弹出窗口的宽度 // iHeight 弹出窗口的高度 //window.screen.height...

Global site tag (gtag.js) - Google Analytics