对于背投广告的原理来说并没有什么难度,无非打开的窗口失去焦点(blur),而原来页面得到焦点(focus)。但对于流行的浏览器来说,如果非用户行为的弹出窗口(即 onload 时,直接window.open ),会被浏览器默认拦截。

  背投广告,既然被称为广告,那如何才能让广告主的钱花得实在,花得乐意呢?

  我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 window.open 事件,这样一般不会拦截,浏览器会认为这是用户的默认行为。

  代码可编写如下:

Example Source Code [www.52css.com]var $E = YAHOO.util.Event;
var adPopup;
var popAd = function(sURL,sName,sFeatures,bReplace) {
    if (adPopup) return;
    if(sName == undefined) {
        sName = '_blank';
    };
    if(sFeatures == undefined) {
        sFeatures = '';
    };
    if(bReplace == undefined) {
        bReplace = false;
    };

adPopup = window.open(sURL,sTarget,sFeatures,bReplace);
    adPopup.blur();
    adPopup.opener.focus();
    $E.removeListener(document.body, 'click', arguments.callee);
}

try {
    popAd();
} catch (e) {
    $E.on(document.body, 'click', popAd);
}
  当然如果用户浏览器安装了拦截插件,那很有可能不会弹出(比如 Firefox 的 noscript 插件,就不允许任何弹出窗)。方法不是绝对的,也不是最好的,只是用最少的时间来做最效率的事情。

  PS:可以通过模拟 form 提交的方式来弹出窗口,穿越性(相对于一般拦截弹窗的插件)很好,不过无法设置 sFeatures 参数内容

转载于:https://www.cnblogs.com/zhouwenwu/archive/2012/03/23/2413194.html

Web开发常用代码:背投广告相关推荐

  1. web开发常用js及html代码(待整理)

    css 创建CLASS并不是建立多种风格的唯一手段, ID也可以用来实现同一规则被应用到页面中不同的地方. 它的语法是: #id名 {标志属性:属性值:标志属性:属性值:--标志属性:属性值} 如上面 ...

  2. web开发常用js及html代码

    本文出自:http://tb.blog.csdn.net/TrackBack.aspx?PostId=710544 css 创建CLASS并不是建立多种风格的唯一手段, ID也可以用来实现同一规则被应 ...

  3. web开发常用js功能性小技巧(转)

    web开发常用js功能性小技巧 -------------------------------------------------------------------------------- < ...

  4. 金蝶GUI开发常用代码

    金蝶GUI开发常用代码 获取控制单元并且设置组织隔离 CtrlUnitCollection ctUnitColls = CtrlUnitFactory.getLocalInstance(ctx).ge ...

  5. html是面向对象的开发语言,Web开发常用的6大编程语言和优势

    Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色,所有用户终端产品与视觉和交互有关的部分,都是Web前端工程师的专业领域.Web开发常用的6大编程语言和优势你知道多少,北大青鸟的老师带您 ...

  6. web设计常用代码收集

    最小化.最大化.关闭窗口 <object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">  & ...

  7. web开发常用工具介绍

    web开发工具介绍: 主要浏览器:IE浏览器.火狐浏览器.谷歌浏览器.Edge浏览器.Safari浏览器.Opera浏览器等. 浏览器市场份额:http://tongji.baidu.com/data ...

  8. CAA二次开发常用代码块

    概述 本文主要写了CAA二次开发常用的代码块.. 逻辑结构 Session->Document-> CATIDftDrawing ->pi p指针 i 结构 pi接口指针,pi指针一 ...

  9. WEB开发常用电子书籍下载

    在学习当中我集中了一些不错的WEB开发 asp.NET 应用方面的电子书籍和大家共享 asp.net程式设计基础篇 ASP.NET深入编程 ASP.NET高级编程 C#高级编程 留言板源码(带库) H ...

  10. html5默认加载s文件夹,『总结』web前端开发常用代码整理

    IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法. 条件注释只能用于IE5以上,IE1 ...

最新文章

  1. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出
  2. python装饰器简单理解的小demo
  3. 18.self关键字.rs
  4. esri geometry-api-java的maven创建
  5. C#中ManualResetEvent用法简介
  6. 前端学习(2037)vue之电商管理系统电商系统之优化
  7. 第三次实验及动手动脑
  8. 11.13 什么是媒体?什么是媒体引用?媒体引用的本地同步?
  9. Qt5调用Snap7
  10. SPSS中K均值聚类操作案例
  11. opencv-车牌识别
  12. 窗体 dialog 弹出时动画效果
  13. 双绞线有两种接法:EIA/TIA 568B标准和EIA/TIA 568A标准。具体接法如下:
  14. WiFi DFS(动态频率选择)
  15. 3.3 CPU共享功能
  16. WEB前端之ELEMENT-TABLE
  17. STM32F407通过定时器ETR实现外部高频波形计数功能
  18. 瞬态抑制二极管(TVS)
  19. 传感器php,传感器的组成是什么?
  20. 怎么绘制定义域空心的三维图:用matlab还是mathematic?

热门文章

  1. 遥感图像几何校正 matlab,利用多项式实现图像几何校正(Matlab实现)
  2. html页面打开前判断session,js判断session过期
  3. 软件过程与管理总复习
  4. 梦幻星球社区APP源码 HYBBS的iApp社区源码
  5. wps专业增强版_Win干货 | WPS专业版永久破戒使用
  6. KELL 平台 DM9000驱动
  7. 一文教你如何摆脱应用商店下载微软应用
  8. 发那科机器人圆弧指令怎么用_发那科机器人的指令如何编辑
  9. 【第68期】智能时代下的计算机系统能力培养
  10. 2010.11.03_ximo_过VMP加壳程序的自效验(vmp 2.06)