可关闭,可重播的flash弹出广告代码
以前都是下别人的过来改,老是出现各种各样的莫名其妙的问题。今天终于爆发了。自己写了一个。还是学到一些东西的。不多说,上代码:
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 var popFlash = new Object();
2 popFlash = { 3 //初始化 4 init : function(options){ 5 if(typeof(options)!='object'){ 6 return false; 7 } 8 //初始化参数 9 this.options = { 10 //广告显示宽度 11 width : (options.width ? options.width : 500), 12 //广告显示高度 13 height : (options.height ? options.height : 300), 14 //广告显示时长 15 showTime : (options.showTime ? options.showTime : 5000), 16 //广告插件基准路径 17 basePath : (options.bathPath ? options.basePath : ""), 18 //swf文件名 19 swfSrc : (options.swfSrc ? options.swfSrc : "ad.swf"), 20 //缩略图文件名 21 iodSrc : (options.iocSrc ? options.iocSrc : "ioc.gif"), 22 //广告指向的链接 23 adHref : (options.adHref ? options.adHref : "about:blank") 24 } 25 }, 26 27 //拼装打开状态的html 28 createOpenedHtml : function() { 29 var openedHtml = ""; 30 openedHtml += '<div id="openedLayer" style="width:'+ this.options.width +'px; height:'+ this.options.height +'px; display:block;">'; 31 openedHtml += '<div style="position:relative">'; 32 openedHtml += '<div id="closer" style="cursor:pointer;" onclick="javascript:popFlash.hidden();" >'; 33 openedHtml += '<img src="'+this.options.basePath+'closer.gif" border="0"/>'; 34 openedHtml += '</div>'; 35 openedHtml += '<a href="'+ this.options.adHref +'" target="_blank" style="padding:0;margin:0;position:absolute;">'; 36 openedHtml += '<img src="'+ this.options.basePath+'blank.gif" width="'+ this.options.width +'" height="'+ this.options.height +'" border="0" />'; 37 openedHtml += '</a>'; 38 openedHtml += '<OBJECT id="swfObj" codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0 height='+this.options.height; 39 openedHtml += ' width='+this.options.width+' classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000>'; 40 openedHtml += '<PARAM NAME="_cx" VALUE="20320"/><PARAM NAME="_cy" VALUE="2117"/>'; 41 openedHtml += '<PARAM NAME="FlashVars" VALUE=""/><PARAM NAME="Movie" VALUE="'+this.options.basePath+this.options.swfSrc+'"/>'; 42 openedHtml += '<PARAM NAME="Src" VALUE="'+this.options.basePath+this.options.swfSrc+'"/><PARAM NAME="WMode" VALUE="Transparent"/>'; 43 openedHtml += '<PARAM NAME="Play" VALUE="-1"/><PARAM NAME="Loop" VALUE="-1"/>'; 44 openedHtml += '<PARAM NAME="Quality" VALUE="High"/><PARAM NAME="SAlign" VALUE=""/>'; 45 openedHtml += '<PARAM NAME="Menu" VALUE="0"/><PARAM NAME="Base" VALUE=""/>'; 46 openedHtml += '<PARAM NAME="AllowScriptAccess" VALUE="always"/><PARAM NAME="DeviceFont" VALUE="0"/>'; 47 openedHtml += '<PARAM NAME="EmbedMovie" VALUE="0"/><PARAM NAME="BGColor" VALUE=""/>'; 48 openedHtml += '<PARAM NAME="SWRemote" VALUE=""/><PARAM NAME="MovieData" VALUE=""/>'; 49 openedHtml += '<PARAM NAME="SeamlessTabbing" VALUE="1"/><PARAM NAME="Profile" VALUE="0"/>'; 50 openedHtml += '<PARAM NAME="ProfileAddress" VALUE=""/><PARAM NAME="ProfilePort" VALUE="0"/>'; 51 openedHtml += '<PARAM NAME="AllowNetworking" VALUE="all"/><PARAM NAME="AllowFullScreen" VALUE="false"/>'; 52 openedHtml += '<embed allowscriptaccess="always" menu="false" width="'+this.options.width+'" height="'+this.options.height+'" wmode="Transparent" '; 53 openedHtml += 'src="'+this.options.basePath+this.options.swfSrc+'" quality="high"'; 54 openedHtml += 'pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="swfObj"></embed>'; 55 openedHtml += '</OBJECT>'; 56 openedHtml += '<iframe id="asdIframe" src="about:blank" style="position:absolute; visibility:inherit;width:'+this.options.width+'px;height:'+this.options.height+'px; '; 57 openedHtml += 'z-index:-1;filter:Alpha(Opacity=0); opacity:0.0; MozOpacity:0.0; KhtmlOpacity:0.0;left:0px;top:0px;"></iframe>'; 58 openedHtml += '</div>'; 59 openedHtml += '</div>'; 60 61 return openedHtml; 62 }, 63 64 //拼装关闭状态的html 65 createClosedHmtl : function(){ 66 var closedHtml = ''; 67 closedHtml += '<div id="closedLayer" style="position:absolute;left:0px;top:0px; display:block;">'; 68 closedHtml += '<img src="'+this.options.basePath+'ioc.gif" />'; 69 closedHtml += '<div style="width:76px;padding:2px;height:15px;">'; 70 closedHtml += '<div style="float:left;">'; 71 closedHtml += '<img src="'+this.options.basePath+'replay_little.gif" border="0" onclick="popFlash.show();" style="cursor:pointer" />'; 72 closedHtml += '</div>'; 73 closedHtml += '<div style="float:right">'; 74 closedHtml += '<img src="'+this.options.basePath+'close_little.gif" border="0" onclick="popFlash.closeAd();" style="cursor:pointer" />'; 75 closedHtml += '</div>'; 76 closedHtml += '</div>'; 77 closedHtml += '</div>'; 78 return closedHtml; 79 }, 80 81 //显示广告 82 show : function(){ 83 //隐藏关闭状态 84 var closedLayer = document.getElementById("closedLayer"); 85 if(closedLayer && closedLayer.style.display == "block") { 86 closedLayer.style.display = "none"; 87 } 88 //显示打开状态 89 var openedLayer = document.getElementById("openedLayer"); 90 if( openedLayer && openedLayer.style.display == "none"){ 91 openedLayer.style.display = "block"; 92 }else{ 93 //document.writeln(popFlash.createOpenedHtml()); 94 document.body.innerHTML += popFlash.createOpenedHtml(); 95 } 96 popFlash.setPosition(); 97 98 //到了显示时长就影藏 99 this.timer = setTimeout("popFlash.hidden()", this.options.showTime); 100 101 }, 102 103 //影藏广告 104 hidden : function(){ 105 clearTimeout(this.timer); 106 //影藏打开装态 107 var openedLayer = document.getElementById("openedLayer"); 108 if (openedLayer && openedLayer.style.display == "block") { 109 openedLayer.style.display = "none"; 110 } 111 112 //显示关闭状态 113 var closedLayer = document.getElementById("closedLayer"); 114 if( closedLayer && closedLayer.style.display == "none"){ 115 closedLayer.style.display = "block"; 116 }else{ 117 //document.writeln(popFlash.createClosedHmtl()); 118 document.body.innerHTML += popFlash.createClosedHmtl(); 119 } 120 popFlash.setPosition(); 121 }, 122 123 //彻底关闭广告 124 closeAd : function(){ 125 var openedLayer = document.getElementById("openedLayer"); 126 var closedLayer = document.getElementById("closedLayer"); 127 128 if(openedLayer){ 129 openedLayer.innerHTML = ""; 130 } 131 if(closedLayer){ 132 closedLayer.innerHTML = ""; 133 } 134 }, 135 136 //设置广告显示的位置 137 setPosition : function(){ 138 var openedLayer = document.getElementById("openedLayer"); 139 var closedLayer = document.getElementById("closedLayer"); 140 141 if(openedLayer){ 142 var marginLeft = this.options.width/2; 143 var marginTop = this.options.height/2; 144 var css = "position:absolute;top:50%;left:50%;margin-left:-"+ marginLeft +"px;margin-top:-"+ marginTop +"px;"; 145 css += "width:"+this.options.width+"px;height:"+this.options.height+"px;"; 146 147 openedLayer.style.cssText += css; 148 } 149 150 if(closedLayer){ 151 var css = "position:absolute;top:50%;left:100%;margin-left:-100px;margin-top:-40px;"; 152 css += "width:80px;height:80px;"; 153 154 closedLayer.style.cssText += css; 155 } 156 } 157 }使用方法也很简单: 代码
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www./1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>无标题文档</title> 6 <scri