博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web开发常用代码:背投广告
阅读量:7103 次
发布时间:2019-06-28

本文共 1004 字,大约阅读时间需要 3 分钟。

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

  背投广告,既然被称为广告,那如何才能让广告主的钱花得实在,花得乐意呢?
  我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 window.open 事件,这样一般不会拦截,浏览器会认为这是用户的默认行为。
  代码可编写如下:
div css xhtml xml Example Source Code 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

你可能感兴趣的文章
《TCP/IP路由技术(第一卷)(第二版)》一1.12 故障诊断练习
查看>>
Team 文档协作功能重磅推出,你讨厌写文档吗?
查看>>
《编写高质量代码:改善c程序代码的125个建议》——建议15-1:避免“=”与“==”混淆...
查看>>
《程序员的修炼——从优秀到卓越》一一1.9 博伊德迭代法则
查看>>
你值得了解的 10 个有趣的 Linux 命令行小技巧
查看>>
女程序员做了个梦,各路大神惊现神级评论
查看>>
安全公司爆料:多家国产品牌手机被预装间谍应用!
查看>>
《Total Commander:万能文件管理器》——第5.2节.传统的压缩
查看>>
使用 Arduino 开发灌溉系统
查看>>
《R语言数据挖掘:实用项目解析》——1.13 缺失值(NA)的处理
查看>>
支付宝放大招 钻石会员免费提现额度达100万 | 附快速升级攻略
查看>>
微软声明: 没放弃 Windows 手机
查看>>
Java语言零基础菜鸟入门, Java程序学习的要点
查看>>
《大数据算法》一1.3 大数据算法设计与分析
查看>>
JAXenter 顶级框架大比拼,谁是 2017 人气之王?
查看>>
《思科绿色数据中心建设与管理》——1.4 绿色阻力
查看>>
《为iPad而设计:打造畅销App》——用iPad进行内容创作
查看>>
《设计模式解析(第2版•修订版)》—第1章复习题
查看>>
《iOS 6核心开发手册(第4版)》——1.14节秘诀:实时触摸反馈
查看>>
《Netty 权威指南》—— 传统的BIO编程
查看>>