1. 程式人生 > >自動生成廣告程式碼

自動生成廣告程式碼

1.根據廣告計劃表返回給客戶放在網站程式碼裡的指令碼,帶個id
<script src="http://192.168.199.137:8080/NetworkAllies/code/getAdverCode.do?id=04e5e1d1-8148-4402-8ff5-4f11652d2e47"></script>

2.當載入該網頁時去後臺查詢該id的物件,並返回動態指令碼及雲上的js檔案
  
@Controller
@RequestMapping(value=RequestMappingConstants.CODE)
public class GetAdverCodeController {
	
	@Autowired
	private TbAdvertisementPlanService tbAdvertisementPlanService;
	
	@RequestMapping(value = RequestMappingConstants.GETADVERCODE)
	@ResponseBody
	public String login(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="id")String id) throws IOException{
		
		TbAdvertisementPlan row = tbAdvertisementPlanService.getAdvertisementPlan(id);
		
		response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Cache-Control", "no-cache");
        PrintWriter out = response.getWriter();

        out.println("  var yP_statsUrl='"+ row.getAdverTargetUrl()+"';");
		out.println("  var yP_unionUrl='"+"www.fjs360.com"+"';");
		out.println("  var yP_width="+row.getAdverWidth()+";");
		out.println("  var yP_height="+row.getAdverHeight()+";");
		out.println("  var yP_imgurl='"+row.getAdverImageFlashAbsolute()+"';");
		out.println("  var yP_imgServer='"+"www.fjs360.com"+"';");
		out.println("  var yP_planType='"+"cpv"+"';");
		out.println("  var yP_tourl='"+row.getAdverTargetUrl()+"';");
//註釋轉義字元注意要點
		out.println("document.write("+"\"<script src=\\\"http://"+"ou1hb9i4z.bkt.clouddn.com/adverShowJs.js\\\""+"></script>\""+");");
		out.flush();
		out.close();
		out = null;
		return null;
	}	
}

3.adverShowJs檔案
  

var $dom={
		ts      : 0,
		adUrl	: yP_statsUrl,
		adw 	: yP_width,
		adh 	: yP_height,
		Ie :(navigator.appName == "Microsoft Internet Explorer"),
		g : function(){
			var d = document.body;e=document.documentElement;
			if(document.compatMode=="BackCompat"){         //BackCompat:標準相容模式關閉。 CSS1Compat:標準相容模式開啟。  獲取不同模式下瀏覽器的寬高等元素
				this.w=d.clientWidth;
				this.h=d.clientHeight;
				this.l=d.scrollLeft;
				this.t=d.scrollTop;		
			}else {
				this.w=e.clientWidth;
				this.h=e.clientHeight;
				this.l=e.scrollLeft==0?d.scrollLeft:e.scrollLeft;
				this.t=e.scrollTop==0?d.scrollTop:e.scrollTop;			
			};
		},
		c : function (){
			
			var yP_fileext=yP_imgurl.substr(yP_imgurl.lastIndexOf(".")).toLowerCase();   //從最後一個.開始擷取,轉換小寫
			
			var doc=document;	
			this.popup = doc.createElement("div");   //建立div
			s = this.popup.style;
			s.overflow = "hidden";         //內容會被修剪,並且其餘內容是不可見的。
			s.position = "absolute";
			s.zIndex = 1000000;
			s.width = (this.adw+8)+"px";
			s.height = (this.adh+34)+"px";
			s.border= 0;
			s.textAlign='left';
			if(yP_fileext!='.swf'){
				if(yP_planType=='cpv') {
					this.stra = "<a  target='_blank' href="+yP_tourl+" onclick='$dom.uc()'><img src='"+yP_imgurl+"' border='0' width='"+(this.adw)+"' height='"+(this.adh)+"'></a>";
				}else{
					this.stra = "<a  target='_blank' href="+this.adUrl+" onclick='_zh_(event)' onmouseover='_zv_();_zn_(event);_zt_(event)' onmousedown='_zc_(event)'  onmouseup='_zc_(event)'><img src='"+yP_imgurl+"' border='0' width='"+(this.adw)+"' height='"+(this.adh)+"'></a>";
				}
				yP_C_zy_str="<table width='"+(this.adw+4)+"' height='"+(this.adh+4)+"' border='0'cellpadding='0' cellspacing='0' style=' border:4px solid #A52911'><tr><td height='25' bgcolor='#A52911'><div  style='background-image: url("+yP_imgServer+"/images/copy.png);*background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+yP_imgServer+"/images/copy.png);background-repeat:no-repeat;height:25px;width:90px;'><a href='http://"+yP_unionUrl+"' target='_blank' style='height:25px;width:90px;display:block;'></a></div></td></tr><tr><td>"+this.stra+"</td></tr></table>";
			}else {                                                                                  //視訊?
				if(yP_planType=='cpv') {
					this.stra = "<a  target='_blank' href="+yP_tourl+" onclick='$dom.uc()'>";
				}else{
					this.stra = "<a  target='_blank' href="+this.adUrl+" onclick='_zh_(event)' onmouseover='_zv_();_zn_(event);_zt_(event)' onmousedown='_zc_(event)'  onmouseup='_zc_(event)'>";
				}
				dL_flash = this.F("pf_123",yP_imgurl, this.adw, this.adh);
				yP_C_zy_str="<table width='"+(this.adw+4)+"' height='"+(this.adh+4)+"' border='0' cellpadding='0' cellspacing='0' style=' border:4px solid #A52911'><tr><td height='25' bgcolor='#A52911'><div  style='background-image: url("+yP_imgServer+"/images/copy.png);*background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+yP_imgServer+"/images/copy.png);background-repeat:no-repeat;height:25px;width:90px;'><a href='http://"+yP_unionUrl+"' target='_blank' style='height:25px;width:90px;display:block;'></a></div></td></tr><tr><td>"+this.stra+"<div style='cursor:pointer;z-index:100000;position:absolute;height:"+this.adh+"px;width:"+this.adw+"px;background-color:#fff;opacity:0.01;filter:alpha(opacity:1);'></div></a><div style=' z-index:9999;cursor:pointer;text-align:center' >"+dL_flash+"</div></td></tr></table>";
			}
			this.popup.innerHTML='<span style="position:absolute;top:2px;right:12px;cursor:pointer;;z-index:111;font-size:16px;color:#ffffff" onclick="$dom.hi()">x</span>'+yP_C_zy_str+'';	 //拼接div
			s.display="none";
			if(this.Ie) {document.body.insertBefore(this.popup) ;} else {document.body.appendChild(this.popup);}          
		},
		hi : function(){
			 clearInterval($dom.sI);
			 document.body.removeChild(this.popup);    //DIV隱藏
		},
		s : function (){
			
			clearInterval($dom.zy);       //清除週期性執行的程式碼
			setTimeout(function(){$dom.r();},50);    //50ms後執行r方法  
		},
		r: function (){
			$dom.c();
			$dom.sI=setInterval(function(){$dom.m();},10);    //獲取此週期執行ID以便結束該迴圈   根據滾動條時時
		},
		m: function (){                                   
			$dom.g();     //獲取瀏覽器屬性
			this.popup.style.left=(this.w-this.adw+this.l-8)+"px";
			this.popup.style.top=(this.h-this.ts+this.t-34)+"px";  
			this.popup.style.display="";
			if(this.ts<this.adh){
				this.ts+=7;
				if(this.ts>this.adh){
					this.ts=this.adh;
					if(this.ts-10>this.adh) clearInterval($dom.sI);
				};
				
			};
		},
		uc :function(){                      //給瀏覽器快取一張圖片
			 
			 a=new Image();	 
			 a.src=yp_doclick2url;
		},
		t: function (){
			if(window.attachEvent){                   //監聽事件,視窗載入   非IE瀏覽器
				
				window.attachEvent("onload",function (){$dom.s();			
			});		
			}else {
				window.addEventListener("load",function (){            //IE瀏覽器
				$dom.s();			
				},true);			
			}
			if(yP_planType=='cpv'){                       //如果是cpv 5000ms後執行Va方法
				setTimeout(function(){$dom.Va();},5000);
			}
		},
		Va: function (){
			
			if(document.body){               //body物件
				zY_a=new Image();	
				zY_a.src=yP_statsUrl;            //給瀏覽器快取一張圖片
			}
		},
		F : function(idad, swfurl, ws, hs)
		{
			 
			var str = '<embed src="'+swfurl+'" type="application/x-shockwave-flash" height="'+hs+'" width="'+ws+'" id="'+idad+'" name="ZyadsFlashAd" quality="high" wmode="transparent" allownetworking="none" allowscriptaccess="always" >';
			return str;
		}
};	
$dom.t();