|
|
楼主 |
发表于 2008-1-8 22:28:00
|
显示全部楼层
回复:对比国内门户网站对Flash激活限制的处理
|
IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法。( o4 b# z5 p! W6 _
`+ k, x) a3 o$ y# Q+ V当鼠标移到网页中的FLASH上时,会出现一个外边框。并有“单击以激活此控件”的提示。解决方法:
c7 u, e+ K# n9 }' c" Y- G& c8 n$ G$ x, P# L1 N
1、新建JS文件:0 a- S& Y5 c1 ?0 V' F$ i0 E
+ @& k' z# L9 W7 |$ [. F//v1.0' i, o- l1 ?1 W$ E+ }9 y
//Copyright 2006 Adobe Systems, Inc. All rights reserved.- f7 k4 n8 x" `, T1 t! u3 O# I; W
function AC_AddExtension(src, ext)# G7 k$ P& c4 h4 m2 o% y2 E
{; t% n$ B" ?% d; X7 \
if (src.indexOf('?') != -1)+ |& F! U |1 s# {$ X9 d4 `
return src.replace(/\?/, ext+'?');
1 ~8 w O: H+ x7 y- Q9 R: \: F5 a else! ], ^- X2 U! L: y
return src + ext;5 q" q% O. y% z) C) c7 N, @+ Y
}! M) M( \) G2 R! U& H b; L2 t
! |# y! x4 ?$ M6 Z" |, q* ]0 Tfunction AC_Generateobj(objAttrs, params, embedAttrs)
% ?6 z$ f6 T( {% K& d- d{ * g0 H. m4 C1 Y3 O
var str = '<object ';* l W9 ?4 q' i/ j, O
for (var i in objAttrs)9 d9 G& k* J% q) n5 v1 g8 n4 _
str += i + '="' + objAttrs + '" ';
% v7 V q0 {+ d* I5 y. I4 s str += '>';
0 g" p. m! y4 S for (var i in params)
6 J: @+ {/ m( ]. z# G6 y str += '<param name="' + i + '" value="' + params + '" /> ';
F- T4 R4 O+ V! |# b) i( o0 L str += '<embed ';. k1 \0 O4 S/ I4 q- J
for (var i in embedAttrs)
6 b E" D1 F' n: Q/ b8 O9 v( D2 g str += i + '="' + embedAttrs + '" ';
" ^8 m- c" \2 n* j) q str += ' ></embed></object>';
% m! N4 [" V6 Q; J, d3 H; B- K3 H0 F1 j; \: o/ g
document.write(str);
4 G! A, L; d) r- n; l2 e}+ J9 o5 [, y8 d
6 x$ M' z' m$ n w" Wfunction AC_FL_RunContent(){7 X- k" B1 E# a6 |% X
var ret = ! \7 y# B* s& F) l, c6 ?9 F
AC_GetArgs
$ F0 F, C8 D" C( G ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
8 r! U/ B- o* T) r, I , "application/x-shockwave-flash"
* {# Z: J+ d) f# W U );5 [# e" G4 Z. B) R& t/ S
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);9 k# u$ y$ e! t. ]& E+ \6 i! G9 K
}0 K) B# r9 j( E# |( \
: B8 I9 S, B: u. G" d) _
function AC_SW_RunContent(){
' }/ e$ R3 q$ V; y* \9 M0 X var ret = ) q! X f% B: `' w7 C
AC_GetArgs2 ~. C4 O/ N4 ?
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
/ c- N6 V9 G. G& M4 r: r# }" ? , null0 T; }/ `' q( s1 _$ j
);$ J }5 \$ l0 Y" a( T
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);/ ]9 W7 G/ j( ^) I9 W* b
}
6 t3 ]3 m/ i3 o9 Q6 L5 n
/ M- f. n& ?+ Ofunction AC_GetArgs(args, ext, srcParamName, classid, mimeType){
) h o% b' k- W0 ^ var ret = new Object();
/ K3 H. K3 T! B9 i1 B ret.embedAttrs = new Object();1 @' F5 I3 J0 J( X" I& t
ret.params = new Object();
: K. Q5 F. b. @0 X% L4 _ ret.objAttrs = new Object();3 c" U; o# `/ ^
for (var i=0; i < args.length; i=i+2){
1 Z/ J. p2 P" j4 [" d. ?; Z var currArg = args.toLowerCase(); ! y& I5 K0 X m
3 s% W. J+ U) @$ E/ w# b0 d switch (currArg){ 0 [, s- l7 v. D' e: l
case "classid":- a! a' O5 l9 a# i+ _
break;
' c* I F/ Y' n7 M5 ^0 V& k1 |# a( N8 C1 \ case "pluginspage":
$ T& f) J% F. Q4 n ret.embedAttrs[args] = args[i+1];
4 |8 k" _ H* j! _3 Z break;% l, Y0 x0 |; o7 F9 i5 T
case "src":
! U8 ]' ^5 V7 N4 ^& [! p case "movie": 3 ~4 v# V B: y @0 M
args[i+1] = AC_AddExtension(args[i+1], ext);; p+ v6 Z( h, l W% _/ R: ]2 D
ret.embedAttrs["src"] = args[i+1];8 H, _ d- w% `6 q. B
ret.params[srcParamName] = args[i+1];
3 D t7 l, r( X, ~7 W1 ?, @ break;
3 D% e8 n# H) O case "onafterupdate":. V7 q" c n0 I
case "onbeforeupdate":+ X* B# T0 {1 y& y! O
case "onblur":; ^* ~# [: u5 ` o3 Y- L% c
case "oncellchange":" g& Z+ M- b8 L- D1 C% V
case "onclick":/ @8 I% @( D* m8 \3 G# p
case "ondblClick":
+ M6 m' n9 v% I8 [9 P0 r( P" B case "ondrag":( a* E- K# f2 ?' z: F
case "ondragend":) C3 g; \/ i- {: k
case "ondragenter":
- P; E$ ?$ g( W2 b case "ondragleave":1 U6 x) U+ Y2 G- V
case "ondragover":4 J2 ?8 z; z" F. H# H
case "ondrop":
' W& a% c0 J1 Y# o; u- F/ [* L: ? case "onfinish":2 j+ y6 [ r. O J
case "onfocus": k" j0 T. z' E# Y
case "onhelp":
! u7 z5 s& R; ]9 i6 o. K case "onmousedown":
$ U0 w. S7 F1 F, A/ M% p: [ case "onmouseup":
; V. X, }! a5 k G1 R/ Z) Y: N9 R1 G( v- H case "onmouseover":
- `' x. B) S/ s case "onmousemove":2 }0 G8 i& a* Q3 u( d
case "onmouseout":
6 ?4 J3 n2 l7 Z4 _6 e0 R case "onkeypress":' J1 ^" V% p8 J) C. s% s
case "onkeydown":
0 u% ?/ g5 Q1 p: ]/ J# o case "onkeyup":
1 p6 N: \; r. D) i! ?$ L' t case "onload":/ [' O- Y) t! P3 E8 m" R' q# z
case "onlosecapture":
8 H" A' S5 `) X+ T$ D8 U4 b case "onpropertychange":- L0 n; G ]7 w
case "onreadystatechange":
4 s) @% z8 c$ }3 U( \ case "onrowsdelete":
/ s5 b8 F2 F: @* a0 `4 V# m case "onrowenter":3 |' e+ J; f$ _4 N1 S5 m
case "onrowexit":
1 V1 B$ T2 \. U: V case "onrowsinserted":
7 K W. p# R1 `; T case "onstart":
9 @6 p3 X- t# D0 ?( l0 F3 G, w+ \7 K case "onscroll":
4 a$ u' t) l& b case "onbeforeeditfocus":9 W. y" f+ N6 c
case "onactivate":
4 W9 ]) x. Z7 M- U/ V case "onbeforedeactivate":3 J( y+ B- R: A2 E" g- [
case "ondeactivate":
5 I ?# ~ ~3 ?) V3 l" K case "type":
; D1 t" q; U' q% Q, b' ? case "codebase":
1 c5 U: y4 ?3 ~" f1 [( W ret.objAttrs[args] = args[i+1];
0 M2 Y0 f" M4 M1 u8 v/ C break;$ b/ p3 C6 L0 p% Q! M
case "width":( c" r. `+ l; D9 k: g8 `6 v+ P4 }0 q
case "height":
. e% l4 q! x; j" [, V" e9 Z/ Y8 \ case "align":
8 l' E0 u' b1 h4 w case "vspace": ' Q+ e7 U3 Y* b! Z( ~5 U0 `
case "hspace":
" |, @7 H& u4 z, K! X5 F! ?0 U case "class":
T- `2 p5 `4 ~. p case "title":
$ y& L) E# ~: E+ @ case "accesskey":9 U1 |2 P7 S2 u1 ], b' R" @6 r
case "name":
& _: t6 i. i ~2 N; L/ q case "id":
! L/ m2 `: p G- B. Z" E case "tabindex":
7 L! `& E8 e' O0 U/ T3 p ret.embedAttrs[args] = ret.objAttrs[args] = args[i+1];% [& ^9 g1 {4 o
break;) u5 b P q+ s2 z9 B; ^
default:
' j* S- R& f7 k) V( s ret.embedAttrs[args] = ret.params[args] = args[i+1];
+ |9 D) g& i$ }; H }0 N' H$ H. k7 V! p# W
}0 B, }7 y6 D) f, @4 T8 j$ K
ret.objAttrs["classid"] = classid;
9 S y/ ]- {5 i3 _9 H, H if (mimeType) ret.embedAttrs["type"] = mimeType;6 _* U. ], V% v( \% k# U' h. p
return ret;
: M7 I, _7 p6 J$ Y# f& Z: V}
! [0 g$ g0 r* e' a& W+ w& w' ~
$ b4 B$ a9 {1 _+ e0 x7 l7 v. y$ @2、保存为:AC_RunActiveContent.js
5 N, N; I- E3 R9 c0 f3 P! o5 U) b$ s, g- u$ n! k/ x
3、在所需的页面中添加;- n( X2 K7 W& ]0 K
( r' \5 {6 o7 |/ t) a% k* t/ B
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>* k I; N) Z/ b& X' t; i
/ }$ b) q8 m# P, |* Y
4、在插入FLASH的位置添加:
" E0 g% T/ t. j4 K+ P8 T% d
6 {# I, i) E5 n" q( @<script type="text/javascript">AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','1002','height','600','src','index','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','index' ); //end AC code</script>/ n' C2 K8 u0 v
<noscript>
2 W9 G2 U* \+ r, Y* W<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="1002" height="600">
2 a7 t, z4 c! c$ e0 E% a/ U, L<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/index.swf">- T* O2 e8 a% G. f
<param name="quality" value="high">
0 F) j5 e" S: A$ @! q9 i- q<param name="wmode" value="transparent">
& r2 Z! N9 ^1 p# O/ P+ G/ x T( s<embed src="http://www.webjx.com/htmldata/2007-04-22/index.swf" width="1002" height="600" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed>
: s* j3 E5 [1 f! G</object>) a) u! P3 c9 o/ _( H# t/ w
</noscript>; C! \( U+ U3 v- _' m7 K
! [8 B+ }- A6 O1 V- D" V
5、页面中的完整代码:
9 E/ }8 }: {( Q1 E* v- v
) Q9 O& W& R4 d<html>2 w- Y$ @0 X4 ~6 N6 M
<head>
3 p7 R( W0 e2 N( a+ B2 q/ ]. |<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />' [$ ]1 V1 e: p8 [. n' I
<title>IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法</title>
# L2 v2 ^" F4 _5 ?9 i$ r<!--加载AC_RunActiveContent.js,此为DW自动生成的文件,无需修改,更改文件目录的时候记得修改这里的路径-->/ k) Y" g9 U# P
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
2 D7 A; M9 C$ j" ]# Y. F" A! c<style type="text/css">* t8 G, u, m1 h& N9 s5 ^6 Z1 T
<!--
2 D" u8 i: Y1 x. x3 ]. Abody {
" g( c$ C5 G/ K5 q5 @: Q background-color: #CCCCCC;5 _9 B0 V0 I* {
}
8 |9 A( `" a6 {7 y-->
5 Z$ f* O$ d9 R' U</style></head>
$ h( F1 G3 ?6 a7 r2 g<body>; t: w2 i5 Q( y5 ~7 l- L
& ^* R2 f7 m! ~$ V<!--下面这段JS修改的时候要注意,一共要修改四个地方:
( B- t Q0 P- e) M0 ^* f$ j300 是宽度;. Q' U% f) ?/ w, R. y) [
200 是高度;
: {' b7 N& S3 }2 O6 i4 u1 z4 r6 ximages/killIEBorder 是路径和文件名,修改时注意,共有两处,还要特别注意,文件名后面不要加“.swf”,此后缀已经写在AC_RunActiveContent.js中-->, U% L- s5 M$ Z$ _" q
<script type="text/javascript">AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','300','height','200','src','images/killIEBorder','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','images/killIEBorder' ); //end AC code</script>6 }6 b8 I2 M6 N" t% {" Z
<!--遇到浏览器禁用javascript时将调用下面这段<noscript></noscript>内的代码,就是Dreamweaver升级到8.0.2之前我们插入flash时的那段代码。<param> 标签针对IE起作用,<embed> 标签针对Firefox和Netscape起作用。-->' x/ _1 Q5 J$ ~' O. r/ D: h# S+ Y
<noscript># f- b; D- y A$ _3 f
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="300" height="200">
+ T, e) N& Z# O/ v <param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/images/killIEBorder.swf">
- K1 q$ j9 ] c5 ~/ n <param name="quality" value="high">
3 w* A( M* f; h. T& d$ w& ], I: G <param name="wmode" value="transparent">
- b6 s$ \7 g: @8 v6 U) c <embed src="http://www.webjx.com/htmldata/2007-04-22/images/killIEBorder.swf" width="300" height="200" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed>3 b+ ~% m3 ~6 d1 Q5 @/ W6 [6 o
</object>% R# i1 n; p; T& y& ]# M
</noscript> |
|