文档章节

基于百度广告管理系统 开发左右单独控制对联

koalaTM
 koalaTM
发布于 2014/07/31 11:51
字数 936
阅读 22
收藏 0

首先在百度广告的广告物料模板中添加一个新的模板,命名为左右对联广告模板

下面代码粘贴后直接确定即可。百度会自动解析${foo} 这样的标签。

var href:link=1;//链接地址
var is_left_right:text=1;//左还是右,左侧left,右侧right
var img_swf:media=1;//图片或者flash
var width:text=1;//广告宽;
var height:text=1;//广告高;
var top:text=1;//与顶部的距离  如果是middle 则表示居中。可填写30代表距离顶部30px;


<script>window.jQuery || document.write('<script src="jquery.min.js"><\/script>')</script>


<script>
var func = {};
var funcID = 'func_'+Math.floor(Math.random()*100000000);//随便定义一个func用于加载多次时调用不同函数
func[funcID] = function(){
    $(document).ready(function(){
        $.ajaxSetup({cache: true});
        var ID = 'BAIDU_ADV_'+Math.floor(Math.random()*100000000);
        $.getScript("adv.js",function(){
                      $.Couplet(ID,'${is_left_right}','${width}','${height}','${top}','${href}','${img_swf}');
        });
    })
}
if (document.all) { 
    window.attachEvent('onload', func[funcID]); 
}  else {
    window.addEventListener('load', func[funcID], false); 
}
</script>


我们看到引入了adv.js 这里就是需要引入的jquery插件。这里之所以这么写,1是因为兼容ie下,js加载和执行顺序问题(后面的window.attachEvent也是这样)2是将插件放在非百度广告中,我们可以很好的就行控制。而不需要再次编辑百度广告模板。百度只负责把变量提交过来即可。

adv.js的代码

/**
 * BAIDU_ADV_Couplet
 * @param ID
 * @param IS_LEFT_RIGHT
 * @param WIDTH
 * @param HEIGHT
 * @param VERTIAL_DIRECTION
 * @param HREF
 * @param img_swf
 * @constructor
 * @author  koala 
 */
$.Couplet = function(ID,IS_LEFT_RIGHT,WIDTH,HEIGHT,VERTIAL_DIRECTION,HREF,img_swf){
    var parentobj = $("<div id='P_"+ID+"'></div>");
    var obj=$("<div id='"+ID+"'></div>");
    var img_swf = img_swf;

    var swfobj = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="OBJ_'+ID+'" width="'+WIDTH+'" height="'+HEIGHT+'" align="middle"><param name="allowScriptAccess" value="always"><param name="quality" value="high"><param name="wmode" value="transparent"><param name="movie" value="'+img_swf+'"><embed wmode="transparent" src="'+img_swf+'" quality="high" align="middle" width="'+WIDTH+'" height="'+HEIGHT+'" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></object>';
    var imgobj='<img src="'+img_swf+'" width="'+WIDTH+'" height="'+HEIGHT+'" />';
    var hrefobj='<a href="'+HREF+'" target="_blank"></a>';
    var closeobj='<div class="dan-control-bar" style="height: 12px; border: 1px solid rgb(225, 225, 225); margin: 0px; padding: 0px; overflow: hidden; background: rgb(240, 240, 240);"><span style="float: right; clear: right; margin: 1px 5px; width: 39px; height: 11px; cursor: pointer; background: url(http://drmcmm.baidu.com/js/img/close.gif) 0px 0px no-repeat scroll;"></span></div>';
    var IS_LEFT_RIGHT=IS_LEFT_RIGHT;//left or right;
    var IS_CLOSED=true;// can be closed;
    var IS_FLOW_WINDOW= true;
    var CLOSED_DIRECTION='up'//the closed div direction  attribute:up down none
    var VERTIAL_DIRECTION=VERTIAL_DIRECTION;
    var WIDTH= WIDTH;
    var HEIGHT=HEIGHT;
    var HREF=HREF;
    var IS_SWF = true;
    var top=0;
    var isIE = !!window.ActiveXObject;
    var isIE6 = isIE && !window.XMLHttpRequest;
    var isIE8 = isIE && !!document.documentMode && (document.documentMode == 8);
    var isIE7 = isIE && !isIE6 && !isIE8;


    if (img_swf.lastIndexOf("swf") == '-1') {
        IS_SWF = false;
    };
    $(parentobj).css('width',WIDTH).css('height',HEIGHT+10).css("overflow",'hidden').css("z-index",'999999');

    $(obj).css({'height':HEIGHT,"overflow":'hidden','width':WIDTH,'position':'relative','display':'block'});

    switch(IS_LEFT_RIGHT){
        case 'left':
            $(parentobj).css('left','0px');
            break;
        case 'right':
            $(parentobj).css('right','0px');
            break;
    }


    switch(VERTIAL_DIRECTION){
        case 'middle':
            top=$(window).height()/2 - ($(obj).height()/2);
            $(parentobj).css('top',$(window).height()/2 - ($(obj).height()/2));
            break;
        default:
            if($.isNumeric(VERTIAL_DIRECTION))
                $(parentobj).css('top',VERTIAL_DIRECTION+'px');
            top=VERTIAL_DIRECTION;
            break;
    };


    switch(IS_FLOW_WINDOW){
        case true:
            if (isIE6 || isIE7) {
                var t = $(parentobj);
                var rect = {
                    w: t.width(),
                    h: t.height(),
                    l: t.css('left'),
                    r: t.css('right'),
                    't': t.css('top'),
                    b: t.css('bottom')
                };

                if (rect.l != 'auto') rect.l = parseInt(rect.l);
                if (rect.r != 'auto') rect.r = parseInt(rect.r);
                if (rect.t != 'auto') rect.t = parseInt(rect.t);
                if (rect.b != 'auto') rect.b = parseInt(rect.b);
                if(rect.l == 0){
                    $(parentobj).css({'position':'absolute','margin-left':0})
                };
                if(rect.r == 0){
                    $(parentobj).css({'position':'absolute','margin-right':0})
                }
                var  bodyScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                bodyScrollTop = bodyScrollTop+parseInt(top);
                $(parentobj).css({'top':bodyScrollTop+"px"});
                $(window).scroll( function() {
                    var  bodyScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                    bodyScrollTop = bodyScrollTop+parseInt(top);
                    $(parentobj).css({'top':bodyScrollTop+"px"});

                });
                } else {
                $(parentobj).css("position","fixed");
            }
            break;
        case false:

            break;
    };


    $("body").prepend(parentobj);
    $(parentobj).append(obj);
    if(IS_SWF){
        $(obj).html($(swfobj));

    }else{
        $(obj).html($(imgobj));

    };

    $(obj).prepend($(hrefobj).css({'display':'block','width':'100%','opacity':'0','height':'2000px','outline':'none','background-color':'#fff','z-index':'99999','position':'absolute'}));
    $(parentobj).append($(closeobj));
    $(".dan-control-bar").click(function(){
        $(this).parent().hide();
    });
}



这个插件写的很粗糙,不过功能已经实现了。基本兼容ie6下的fixed问题。

© 著作权归作者所有

koalaTM
粉丝 0
博文 5
码字总数 2087
作品 0
黄浦
程序员
私信 提问
开源企业网站建设系统 ASPCMS

2.0.0是上谷网络旗下aspcms开发的全新内核的开源企业建站系统,能够胜任企业多种建站需求,并且支持模版自定义、支持扩展插件等等,能够在短时间内完成企业建站。 ASPCMS 开源企业网站管理系...

索隆
2011/12/04
177
0
开源企业建站系统--ASPCMS

ASPCMS是由上谷网络开发的全新内核的开源企业建站系统,能够胜任企业多种建站需求,并且支持模版自定义、支持扩展插件等等,能够在短时间内完成企业建站。 本站提供的为直接使用版 ,下载后部...

匿名
2010/12/24
16.3K
1
PHP分类信息系统--MyMPS

mymps系统简介: mymps(蚂蚁分类信息/地方门户系统)是一款基于php mysql的建站系统.为在各种服务器上架设分类信息以及地方门户网站提供完美的解决方案。 mymps,整站生成静态,拥有世界一流...

匿名
2012/02/25
17K
4
突然发觉对联这样的广告好占空间

一个浏览器本来看起来,网页的信息就很少,再加上一个对联的广告,就觉得很拥挤。 为什么好多网站都喜欢对联的广告,难道不觉得这样不是很友好吗? 虽然只有那么一点点,但是给人的感觉就是很...

欣儿
2014/05/10
285
6
移动广告平台有哪些,各有啥优缺点?

1:Admob AdMob是全球最大的手机广告网络之一,为在手机网上发掘商机、塑造品牌和实现收益提供解决方案。 手机是重要的媒体平台,我们构建这些工具就是为了让世界上的每种业务都能通过手机来开...

大街小巷
2015/11/27
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

vue class绑定 组件

本文转载于:专业的前端网站➬vue class绑定 组件 当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面。这个元素上已经存在的类不会被覆盖。 例如,如果你声明了这个...

前端老手
50分钟前
4
0
exist和in

exist和in select ..from table where exist (子查询) ; select ..from table where 字段 in (子查询) ; 如果主查询的数据集大,则使用In,效率高。 如果子查询的数据集大,则使用exist,效率高...

潦草的犀牛
54分钟前
5
0
Android OkHttp + Retrofit 取消请求的方法

本文链接 前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求。对于OkHttp来说,具体是调用Call的cancel方法。 ...

shzwork
今天
6
0
并发编程之Callable异步,Future模式

Callable 在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或...

codeobj
今天
7
0
Ubuntu环境下安装PaddlePaddle

开篇 深度学习技术是目前非常热门的技术,笔者在闲暇之余决定学习一下这门技术,入门选择了百度开源的PaddlePaddle框架。 paddlepaddle介绍 飞桨(PaddlePaddle) 是国际领先的端到端开源深度学...

豫华商
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部