`

淘宝首页的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 为子窗口...

    window.open最大化问题

    然而,在实际应用中,我们经常需要将弹出的窗口最大化,以便更好地展示内容。在本文中,我们将探讨如何使用 Window.open 方法来实现窗口的最大化。 基本语法 Window.open 方法的基本语法如下: ``` window.open...

    window.open.txt

    此方法通常被用作弹出窗口或新标签页的功能实现基础。其基本语法为: ```javascript window.open(URL, target, features); ``` - **URL**:要打开的新窗口中的文档地址。 - **target**:指定新窗口的名称,可以...

    js弹窗并返回值(window.open方式)

    在描述中提到的博文链接中,作者可能详细讲解了如何使用`window.open`来创建自定义弹窗,并从弹出窗口中获取返回值。通常,我们不能直接从`window.open`的返回值获取用户在新窗口中的操作,因为返回的是一个`Window`...

    javascript 打开页面window.location和window.open的区别.docx

    - **window.open** 更适合用于打开新的浏览器窗口或标签页,特别是在需要弹出新窗口的情况下。 #### 五、安全性和隐私考虑 - 使用 `window.open` 打开新窗口可能会触发浏览器的安全策略,尤其是当涉及到跨域请求时...

    window.open打开新窗口参数设置

    2. **弹窗阻止**:许多浏览器都具有弹出窗口阻止功能,这可能会影响 `window.open()` 方法的执行结果。 3. **安全限制**:出于安全考虑,跨域访问可能会受到限制。 4. **用户体验**:频繁使用 `window.open()` 可能...

    window.showModalDialog模式对话框和 window.open的区别

    在Web开发中,创建弹出窗口是常见的交互方式,用于显示一些额外的信息或者进行特定的操作。`window.showModalDialog` 和 `window.open` 都是JavaScript提供的两种打开新窗口的方法,但它们在功能和使用场景上有着...

    Window.Open详解

    例如,如果希望页面加载时立即弹出新窗口,可以将代码放在 `<body>` 的开始部分。 3. **兼容性**: - `window.open()` 方法支持 JavaScript 1.0+/JScript 1.0+/Nav 2+/IE 3+/Opera 3+ 等浏览器。 - 在现代浏览器...

    window.open最大化操作

    在Web开发中,我们经常需要弹出新的浏览器窗口,而在某些情况下,我们需要将这个窗口最大化以便于用户体验。那么,如何使用JavaScript的window.open方法来实现窗口的最大化呢? 首先,让我们来了解一下window.open...

    window.open打开新窗口,不被拦截的方法

    但是,在实际应用中,由于浏览器的安全策略限制(如弹出窗口拦截功能),直接使用`window.open()`可能会导致新窗口被浏览器自动拦截,从而无法正常显示。本文将详细介绍如何使用`window.open()`方法打开新窗口,并...

    js window.open iframe dialog

    在JavaScript的世界里,`window.open`、`iframe`和`dialog`是三个非常重要的概念,它们在网页交互和页面通信中扮演着关键角色。这里我们将深入探讨这些知识点,并结合实例来帮助你理解它们的用法。 1. `window.open...

    window.showModalDialog以及window.open用法简介

    在网页开发中,有时我们需要打开新的窗口或者弹出对话框来与用户进行交互。`window.showModalDialog`和`window.open`是JavaScript中用于实现这一目标的两个关键函数。它们都可以创建新窗口,但有着不同的特性和使用...

    window.open()参数

    window.open() 是一个常用的 JavaScript 函数,它可以打开一个新的浏览器窗口,以供用户访问其他网页或显示信息。在本文中,我们将详细介绍 window.open() 函数的参数大全,并提供一些实用的代码示例。 基本语法 ...

    JavaScript中Window.open参数

    ### JavaScript中Window.open参数详解 #### 1. 最基本的弹出窗口代码 在Web开发中,`window.open` 方法是非常实用的一个功能,它可以用来创建一个新的浏览器窗口或标签页,并加载指定的URL。最简单的使用方式如下...

    window.open 控制

    在本文中,我们将深入探讨如何使用`window.open()`来创建并控制弹出窗口,尤其是如何实现窗口的最大化和获取焦点。 首先,`window.open()` 的基本语法如下: ```javascript window.open(url, name, features); ```...

    详解js location.href和window.open的几种用法和区别.docx

    详解 JS location.href 和 window.open 的几种用法和区别 ...location.href 和 window.open() 是 JavaScript 中两个重要的方法,需要掌握它们的用法和区别,以便更好地实现页面的跳转和弹出窗口。

    js利用IE通过windowopen方式保存网页部分内容到本地

    5. **执行保存命令**:最后,通过`document.execCommand('SaveAs')`命令弹出保存对话框,让用户选择文件保存的位置和名称。需要注意的是,`execCommand`方法在现代浏览器中已逐渐被废弃,但在IE中仍然可用。 ### ...

    window.open全攻略

    在JavaScript中,`window.open()` 是一个非常重要的方法,它用于打开一个新的浏览器窗口或者重载已有的窗口。以下是对这个方法的详细介绍: ### 1. 基本用法 最简单的`window.open()` 使用方式如下: ```...

    window.open参数详解.txt

    这在处理弹出窗口或重用特定窗口时非常有用。如果未指定`name`,或者将其设为`_blank`,则会打开一个新的、未命名的窗口。 3. **`features`参数**:这是一个用于描述新窗口特性的字符串,可以包含多个键值对,键值...

    window.open

    ### window.open 不被拦截弹出窗简述 在Web开发中,`window.open()`方法用于创建一个新的浏览器窗口或标签页,并返回对新打开窗口的引用。这个方法在很多场景下非常有用,比如用来实现弹出窗口、跳转链接等功能。...

Global site tag (gtag.js) - Google Analytics