|
楼主 |
发表于 2008-1-8 22:28:00
|
显示全部楼层
回复:对比国内门户网站对Flash激活限制的处理
IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法。
7 n8 B4 Z+ `8 i! X" l I
- }( q2 `9 D: x0 j当鼠标移到网页中的FLASH上时,会出现一个外边框。并有“单击以激活此控件”的提示。解决方法:
7 S4 ~! a x( q1 b: u
+ O2 A( \4 R$ F9 r# Z1、新建JS文件:
+ X5 o6 S' H) K. W" t ]' S/ c5 J/ \" s$ Y( x
//v1.0# U9 x: B! y y" d0 B
//Copyright 2006 Adobe Systems, Inc. All rights reserved.+ c" n6 w1 O4 `1 a/ _
function AC_AddExtension(src, ext)
( d4 _! H# t0 \2 c3 }{) N& w2 t, }2 n
if (src.indexOf('?') != -1)
3 ^- X4 P/ ` I( i1 l6 N return src.replace(/\?/, ext+'?');
9 y# o" T6 L Q0 _ else
! J" @ _' M' F( @# N# N return src + ext;
+ B3 C9 P, E4 |# \. n, h" F+ k}
# |/ U- i# Y2 Q- E$ w! }( R" n) [- o* R5 _0 J
function AC_Generateobj(objAttrs, params, embedAttrs)
0 v! e7 _2 ^3 p6 Z/ q4 |{
; f/ K7 u o) `: q; y2 S2 R var str = '<object ';' [' N. S7 b' b
for (var i in objAttrs)* d @3 S9 V4 }' f9 B
str += i + '="' + objAttrs + '" ';2 U# |+ T' e$ w+ ^6 D
str += '>';
* G1 R. Q: [( f: U5 P& Q for (var i in params); K8 E3 q' T; ~/ Q5 |
str += '<param name="' + i + '" value="' + params + '" /> ';
; `! n0 @( m8 O% a# ~ str += '<embed ';
) @7 | ] N% u. l2 `- y1 {' K for (var i in embedAttrs)
, S6 @, D) @. |" v( g9 Q% x/ ^8 {/ _3 k str += i + '="' + embedAttrs + '" ';! M4 x) C/ i G3 b7 F- D& m t
str += ' ></embed></object>';
" w! ?4 G) g5 U$ S7 d( o3 c7 M7 E! V% h |
document.write(str);
" A5 b4 W2 c _}" _( e/ ?' I- J: F, Y
/ g$ l1 a) ]6 F
function AC_FL_RunContent(){
7 p. w, C/ u; S! [7 X: E5 F var ret =
4 s& W3 U- `4 J9 X AC_GetArgs
! I1 ^5 v* D0 h) w) }; H ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
) t- ^7 N. \' t/ ^* ^ , "application/x-shockwave-flash"! o1 D. H( f: D j0 l- j9 y
);& |3 }' Q, H9 W- [$ }; P6 ?
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);; r1 [, U2 U/ n& p( u
}2 y, T5 V- l1 v: w; Z
* B0 X" _+ j+ Lfunction AC_SW_RunContent(){& F0 r, l/ `9 ]) l5 w- X. i7 s
var ret = 1 S4 E: [, u3 y! u3 Q
AC_GetArgs4 ?* V- p6 e" v! N2 K
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"/ `8 |* t1 |7 X5 Q: y4 C
, null
3 ~6 C! M$ E9 y0 g- a );
+ N% N! _3 Q# i. ^6 Q AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
2 l3 U; ~6 C, c" d& a}
) [0 S" J5 ~" ~0 `0 O& D
. N) |# l" ~/ Z2 Ifunction AC_GetArgs(args, ext, srcParamName, classid, mimeType){
, y) _& Y6 c* E9 V var ret = new Object();1 {2 k6 l5 b6 m
ret.embedAttrs = new Object();: M1 a& Y7 _: X7 q; _
ret.params = new Object();
$ v. j8 W" ~ q8 @ ret.objAttrs = new Object();0 N0 }: Q# [9 L4 b( s, P9 X
for (var i=0; i < args.length; i=i+2){- u6 {- Y, i% ?2 M
var currArg = args.toLowerCase(); ' g4 ]1 }- Q, d* d( x5 M& V
7 t; L! |6 ?1 F" U* Q% ?. O& i! v2 b switch (currArg){
3 S1 \: X' @; [' E$ f- P case "classid":( \/ g7 L2 K& ]6 Q# K
break;8 Z# G% y" e; u# r* {: Q! T
case "pluginspage":
2 N! M; e& \3 n/ m ret.embedAttrs[args] = args[i+1];
, q5 O$ q4 x- T7 D/ y. X: J: c0 \ break;$ s, R" i: Q! R' Y2 I! K
case "src":
) v" L8 a0 D. x) {/ g case "movie":
$ R% o. l e2 e& ]8 D7 v# J args[i+1] = AC_AddExtension(args[i+1], ext);
. N' D$ W( Y& n& j: J ret.embedAttrs["src"] = args[i+1];' z% S8 Q$ [& K9 ^7 |1 _4 K( e: n
ret.params[srcParamName] = args[i+1];8 }1 ?) r- [# a# F# c
break;# J5 l7 a. z6 K( T; k
case "onafterupdate":
" J3 d7 Y% _7 O: u* x# ? case "onbeforeupdate":2 @) x( n2 _1 ]
case "onblur":
" G- t4 K0 \. e' _$ o9 j8 H5 M& ]6 ? case "oncellchange":8 K9 }* `0 M i4 w& ^& Y! R
case "onclick":
$ I" ?' S3 g7 E4 F case "ondblClick":
4 R. E4 ?. [" {) F case "ondrag":
7 u) Q; ^1 w0 O# |% v case "ondragend":
' K% I/ h8 O& l( v# G; ^ case "ondragenter":
/ @5 B8 ]# k1 A, |$ ]' z. }9 b case "ondragleave":- }: n9 |9 Y! ~* ^
case "ondragover":6 |& F3 a5 ]4 j. W
case "ondrop":) K) \6 H( A6 y* s, _6 ^
case "onfinish":4 h' s( P: X* A! l- o9 n" A4 i
case "onfocus":
' l3 O1 T4 y0 }) R! S case "onhelp":6 U& \+ N+ A( l4 ~
case "onmousedown":: G; J- @" p; x' m* h
case "onmouseup":
% ?8 H2 K6 P2 c8 V( o case "onmouseover":7 w! D7 S9 ^4 W7 W# Z9 e( d
case "onmousemove":* L! V5 J& ^9 j
case "onmouseout":) a2 ^" i& ]7 p, l1 e
case "onkeypress":9 j/ H; X* B" d b' C8 @
case "onkeydown":
; J$ R; n4 g( N% q6 W7 J$ t- a# t3 f case "onkeyup":6 c: A! D$ l& s( }9 r' m0 f( k B
case "onload":
- H. n+ H1 j: o& b& G" Q case "onlosecapture":7 b9 z( M+ u! Q2 ?0 U, b" W
case "onpropertychange":3 |! N) ^$ Y! P/ J0 h; u: ?$ w. A
case "onreadystatechange":
8 W. ]- r9 g" z! W* b case "onrowsdelete":, l2 a E2 e) ]8 u- N2 P- y$ Z- v
case "onrowenter":
6 A; w9 F5 l, e! n# ^1 p case "onrowexit": T3 k* O ?2 ]1 O0 [9 D( J# w
case "onrowsinserted":; P I# o' r2 n: Y* Y
case "onstart":
: ^* \- v+ G4 T) O5 V/ k! P case "onscroll":1 }/ C' F; @$ d
case "onbeforeeditfocus":& ~4 A3 Z) D' L+ R' A# e
case "onactivate":
* x2 a4 O: j6 i( y4 k+ b' X case "onbeforedeactivate":0 l/ ] G2 o8 g
case "ondeactivate":! V8 Q' [$ B# V- V D$ N& o7 c, Y
case "type":1 ]& _7 Y: l% K; z, Y2 l* B
case "codebase":
6 _' E/ B+ T7 B" r ret.objAttrs[args] = args[i+1];
! d, x/ C" d/ @. X- ]1 ~ break;; B# ?& } l4 t0 z
case "width":7 e' B% j/ [% z( w
case "height":2 s5 P: c7 E7 n7 Y6 j
case "align":
6 n* C3 ^4 ]. |5 u8 {2 }4 V case "vspace":
- S+ O A; o6 W! F0 h; v' {7 Q- c case "hspace":
0 s" Q. g+ c* F7 G- \ case "class":# C. g) e" f* E% R- H
case "title":
5 `6 L- B) Z6 a, q! j* W2 W2 X case "accesskey":# O C# [ Z, C+ T6 z
case "name":
! @. V: D7 ~0 W case "id":8 }8 {1 [0 P$ U7 i& w" k# I, Y: I
case "tabindex":( L8 ]2 ]! w g7 u m& t w
ret.embedAttrs[args] = ret.objAttrs[args] = args[i+1];
; w: z+ v) K/ I6 ^8 ]8 k7 R break;* U# V- e# i3 y( Y& M
default:' R& v$ N% H: K
ret.embedAttrs[args] = ret.params[args] = args[i+1];
) c% r! E' p( F) G- ^ }
7 } `# Y) ^; M2 I9 m: G }. o: m3 X% O7 @3 B! g7 E, u" G
ret.objAttrs["classid"] = classid;
7 a5 m9 G: ^1 d5 M( y/ {* { if (mimeType) ret.embedAttrs["type"] = mimeType;
7 K R, y7 i, S2 D) y return ret;
8 J3 }" Y5 _5 B}
) u( r7 U) f) `% Y! \ @ h* m* E& e5 q
2、保存为:AC_RunActiveContent.js
% H( f* k- }% i5 n/ l. r1 H) N! @; o$ P" r+ y. |2 P
3、在所需的页面中添加; R k# S5 s% s; V8 o% {% W
% @. z. S2 l; B! C7 s- }9 M4 o+ g
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>5 i8 D1 y( z7 d L1 y5 t
" K9 R' E5 C7 g+ `, P" r
4、在插入FLASH的位置添加:
$ H1 g) A2 A# G
& D& J6 y" l a$ P4 Y<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>
$ G( h6 }( J4 T2 D$ e<noscript>, e: @" B1 T; |% N* e' W1 H6 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">
1 X% w+ O* v3 |6 Z9 @<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/index.swf"> {5 O1 ^) b' e. N9 B! A( ~
<param name="quality" value="high">( D$ `( C: [, M: b
<param name="wmode" value="transparent">
8 X1 O: y N; r, `3 e<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>1 I' k( x) J8 T) V! C! b
</object>
' z: P. C; U p0 l* b! q$ ]</noscript>8 {0 ]: u3 X0 |0 c5 ]6 g
, i5 e; d2 k8 B7 n) O3 V6 [
5、页面中的完整代码:
7 F2 A; l+ g$ {9 p3 B/ h, |& u8 h1 L" v
- a$ m0 I3 G1 R1 p( o) _! m- H<html>
& h/ ^/ e0 u$ ?7 I6 o/ i<head>
: ~8 v& A7 l$ ~) H7 A. F9 H+ j" H<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- p9 r+ W: {$ p. j# w<title>IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法</title>
' Z3 t9 x0 Y; v5 h f<!--加载AC_RunActiveContent.js,此为DW自动生成的文件,无需修改,更改文件目录的时候记得修改这里的路径-->
5 e9 v! `# E1 K* Y& c( V4 h' T<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>) C/ N$ |0 W5 F/ [' X! X
<style type="text/css">
! x% k0 k) A" K. @" A<!--
e# S$ A( u7 N- s# @3 Q5 }5 jbody {
3 h( j& [6 [2 L background-color: #CCCCCC;
) h. E0 [ N2 H}
: T$ d2 D. e1 t' s: n-->/ x d6 F) r. e0 v# q
</style></head>8 a) ~" n9 K3 L2 m9 w9 s
<body>
! E/ `5 {3 l- }: \4 K
( H2 t& f( V( M9 ?* u8 P. |- D<!--下面这段JS修改的时候要注意,一共要修改四个地方:" S- t/ P( t, p# r$ \# ?" s8 j
300 是宽度;
( [7 U8 [- M2 {200 是高度;- O1 N/ J5 G& I6 y! C3 e7 d
images/killIEBorder 是路径和文件名,修改时注意,共有两处,还要特别注意,文件名后面不要加“.swf”,此后缀已经写在AC_RunActiveContent.js中-->
b, W3 E' {3 x. V<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>7 {) y* A" |+ b4 S; L
<!--遇到浏览器禁用javascript时将调用下面这段<noscript></noscript>内的代码,就是Dreamweaver升级到8.0.2之前我们插入flash时的那段代码。<param> 标签针对IE起作用,<embed> 标签针对Firefox和Netscape起作用。-->9 i. h- f: r8 q" p' c+ O) V# J7 [8 G
<noscript>
( C! n( j! K( H' 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="300" height="200">, Z% J+ y( L% a+ {
<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/images/killIEBorder.swf">
* X8 ^5 g X. D; w; [ <param name="quality" value="high">
# T! Y' x$ i& A3 P' y1 x% u; m <param name="wmode" value="transparent">
' e5 Y& `/ G1 K4 q <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>
. p8 g) O" C2 P& _. ~, ]4 w</object>/ L; m" Q2 _; X1 O1 Y3 I
</noscript> |
|