无意中见到淘宝的弹出广告,心里嘀咕,现在弹窗不是大都被浏览器给屏蔽了么?
查看源码,找到一串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 为子窗口...
然而,在实际应用中,我们经常需要将弹出的窗口最大化,以便更好地展示内容。在本文中,我们将探讨如何使用 Window.open 方法来实现窗口的最大化。 基本语法 Window.open 方法的基本语法如下: ``` window.open...
此方法通常被用作弹出窗口或新标签页的功能实现基础。其基本语法为: ```javascript window.open(URL, target, features); ``` - **URL**:要打开的新窗口中的文档地址。 - **target**:指定新窗口的名称,可以...
在描述中提到的博文链接中,作者可能详细讲解了如何使用`window.open`来创建自定义弹窗,并从弹出窗口中获取返回值。通常,我们不能直接从`window.open`的返回值获取用户在新窗口中的操作,因为返回的是一个`Window`...
- **window.open** 更适合用于打开新的浏览器窗口或标签页,特别是在需要弹出新窗口的情况下。 #### 五、安全性和隐私考虑 - 使用 `window.open` 打开新窗口可能会触发浏览器的安全策略,尤其是当涉及到跨域请求时...
2. **弹窗阻止**:许多浏览器都具有弹出窗口阻止功能,这可能会影响 `window.open()` 方法的执行结果。 3. **安全限制**:出于安全考虑,跨域访问可能会受到限制。 4. **用户体验**:频繁使用 `window.open()` 可能...
在Web开发中,创建弹出窗口是常见的交互方式,用于显示一些额外的信息或者进行特定的操作。`window.showModalDialog` 和 `window.open` 都是JavaScript提供的两种打开新窗口的方法,但它们在功能和使用场景上有着...
例如,如果希望页面加载时立即弹出新窗口,可以将代码放在 `<body>` 的开始部分。 3. **兼容性**: - `window.open()` 方法支持 JavaScript 1.0+/JScript 1.0+/Nav 2+/IE 3+/Opera 3+ 等浏览器。 - 在现代浏览器...
在Web开发中,我们经常需要弹出新的浏览器窗口,而在某些情况下,我们需要将这个窗口最大化以便于用户体验。那么,如何使用JavaScript的window.open方法来实现窗口的最大化呢? 首先,让我们来了解一下window.open...
但是,在实际应用中,由于浏览器的安全策略限制(如弹出窗口拦截功能),直接使用`window.open()`可能会导致新窗口被浏览器自动拦截,从而无法正常显示。本文将详细介绍如何使用`window.open()`方法打开新窗口,并...
在JavaScript的世界里,`window.open`、`iframe`和`dialog`是三个非常重要的概念,它们在网页交互和页面通信中扮演着关键角色。这里我们将深入探讨这些知识点,并结合实例来帮助你理解它们的用法。 1. `window.open...
在网页开发中,有时我们需要打开新的窗口或者弹出对话框来与用户进行交互。`window.showModalDialog`和`window.open`是JavaScript中用于实现这一目标的两个关键函数。它们都可以创建新窗口,但有着不同的特性和使用...
window.open() 是一个常用的 JavaScript 函数,它可以打开一个新的浏览器窗口,以供用户访问其他网页或显示信息。在本文中,我们将详细介绍 window.open() 函数的参数大全,并提供一些实用的代码示例。 基本语法 ...
### JavaScript中Window.open参数详解 #### 1. 最基本的弹出窗口代码 在Web开发中,`window.open` 方法是非常实用的一个功能,它可以用来创建一个新的浏览器窗口或标签页,并加载指定的URL。最简单的使用方式如下...
在本文中,我们将深入探讨如何使用`window.open()`来创建并控制弹出窗口,尤其是如何实现窗口的最大化和获取焦点。 首先,`window.open()` 的基本语法如下: ```javascript window.open(url, name, features); ```...
详解 JS location.href 和 window.open 的几种用法和区别 ...location.href 和 window.open() 是 JavaScript 中两个重要的方法,需要掌握它们的用法和区别,以便更好地实现页面的跳转和弹出窗口。
5. **执行保存命令**:最后,通过`document.execCommand('SaveAs')`命令弹出保存对话框,让用户选择文件保存的位置和名称。需要注意的是,`execCommand`方法在现代浏览器中已逐渐被废弃,但在IE中仍然可用。 ### ...
在JavaScript中,`window.open()` 是一个非常重要的方法,它用于打开一个新的浏览器窗口或者重载已有的窗口。以下是对这个方法的详细介绍: ### 1. 基本用法 最简单的`window.open()` 使用方式如下: ```...
这在处理弹出窗口或重用特定窗口时非常有用。如果未指定`name`,或者将其设为`_blank`,则会打开一个新的、未命名的窗口。 3. **`features`参数**:这是一个用于描述新窗口特性的字符串,可以包含多个键值对,键值...
### window.open 不被拦截弹出窗简述 在Web开发中,`window.open()`方法用于创建一个新的浏览器窗口或标签页,并返回对新打开窗口的引用。这个方法在很多场景下非常有用,比如用来实现弹出窗口、跳转链接等功能。...