以前都是下别人的过来改,老是出现各种各样的莫名其妙的问题。今天终于爆发了。自己写了一个。还是学到一些东西的。不多说,上代码:
代码
代码


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 }
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 }
使用方法也很简单:


1
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
2 < html xmlns ="http://www.w3.org/1999/xhtml" >
3 < head >
4 < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
5 < title > 无标题文档 </ title >
6 < script type ="text/javascript" language ="javascript" src ="popFlash.js" ></ script >
7 </ head >
8
9 < body >
10 < script >
11 popFlash.init({width: 700 ,height: 275 });
12 popFlash.show();
13 </ script >
14 </ body >
15 </ html >
2 < html xmlns ="http://www.w3.org/1999/xhtml" >
3 < head >
4 < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
5 < title > 无标题文档 </ title >
6 < script type ="text/javascript" language ="javascript" src ="popFlash.js" ></ script >
7 </ head >
8
9 < body >
10 < script >
11 popFlash.init({width: 700 ,height: 275 });
12 popFlash.show();
13 </ script >
14 </ body >
15 </ html >
init的参数可以参照源码中的options对象,缺省的可以不写