|
|
楼主 |
发表于 2008-1-8 22:28:00
|
显示全部楼层
回复:对比国内门户网站对Flash激活限制的处理
|
IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法。
' k; X/ B& }. f0 ^1 x- t8 ^2 J) W
5 |0 O9 s( K: l; n2 v" j3 L) B$ }当鼠标移到网页中的FLASH上时,会出现一个外边框。并有“单击以激活此控件”的提示。解决方法:& ~3 A2 ]+ z1 J' V
9 e7 u9 G8 Q+ N, C& E: z) H8 Z* ^, J
1、新建JS文件:8 B( [% ?! G4 k0 e9 j N
: G2 }2 W' F: t//v1.0' t! b$ y6 B3 A& R( k
//Copyright 2006 Adobe Systems, Inc. All rights reserved./ j+ e2 W, E+ {; P4 d2 M8 ?/ Q& z1 q
function AC_AddExtension(src, ext)
# ~! B5 \; E, O0 ~2 [+ f{0 W* |; Q6 ]' S m% V: B; J7 s5 L. R
if (src.indexOf('?') != -1)$ o* X% K( K) }* E7 V9 x$ n
return src.replace(/\?/, ext+'?');
Q1 O( Q. ^! `0 k4 Z4 e else j" x4 D6 o! Y* @+ m5 `; H
return src + ext;
9 @0 i+ @1 T8 g: r4 f3 L% A$ P0 F+ R}
- N" I/ N& h% Y+ B5 ]3 d: y( w" h; |
function AC_Generateobj(objAttrs, params, embedAttrs) e4 f3 L$ L" r! t; ?
{ ; P% b' U% u- K
var str = '<object ';( {* e. t, N1 d/ n/ n0 J8 N
for (var i in objAttrs) k1 x4 Y i- [6 [4 {6 `
str += i + '="' + objAttrs + '" ';0 c' S6 H4 n/ s8 @! Y2 Y t
str += '>';5 D' z( U# o3 w# A) Y# f, q
for (var i in params)
# d S0 M) Y2 o1 c' h) l* p) R. } str += '<param name="' + i + '" value="' + params + '" /> ';' Q- S3 Q5 \: {+ S
str += '<embed ';/ Z8 n' B9 D2 Y( h' ]1 U9 |1 ^( ^
for (var i in embedAttrs)
8 |& x: j2 E7 X, n) G str += i + '="' + embedAttrs + '" ';
0 A/ H" t m5 x9 e4 ^3 T1 y: C str += ' ></embed></object>';
4 B0 x0 m7 A8 Z! R% x5 g+ { J
* d5 K& ?4 j3 O* n, J4 o/ C7 { document.write(str);
1 }& Y7 J: R6 o3 n- v) K% z; o}" J+ E" G1 x( D; w; D: ~" _0 _) Z
' w3 Q. E; _+ w8 Kfunction AC_FL_RunContent(){
: w2 \- V& [8 Y9 J8 i var ret =
, |3 G% a6 s3 l$ p* e( I AC_GetArgs
% w4 R7 C: D. |; r- F' \3 \; c ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
; m7 \5 w- H! O1 _; n0 U3 G' t , "application/x-shockwave-flash"
; E; V$ ?/ n: j( y% A );
* d$ E% b+ M+ G/ J+ _6 |" ] AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
8 _& I" Y! s& \) [}6 j0 f c5 G4 U
( Y# v4 N% C2 Mfunction AC_SW_RunContent(){
: x: w$ b3 U4 y var ret = & j! C) p' Z; |, `, G0 L
AC_GetArgs5 P6 l7 ^ l4 y4 D6 h* i5 v
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
4 |- f7 q/ m% R# B: } , null
, Z( \; p- b5 f% E# A' [1 }, ^8 K );7 W, ]# j) Y9 l1 [$ Q9 l
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);1 e! }; a7 j( W4 y( ~- \: f
}$ [5 ]+ E' C' j- Y" K
; M7 }- V" ~* ~" C' B0 I) ?function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
1 z. M; e' ^4 T1 V7 | var ret = new Object();
/ u5 D# o# x; o1 M( K. J0 P ret.embedAttrs = new Object();
- f$ J( M" E: s _( z9 i' f ret.params = new Object();
' X$ [) l& ^+ ^/ B$ [1 t ret.objAttrs = new Object();
" |' ^$ G }* e# K for (var i=0; i < args.length; i=i+2){+ J8 |( Z& |+ d6 f' i% j' C7 L
var currArg = args.toLowerCase();
$ B: Z& j9 e" C* W. E# |9 U; a4 c9 H5 c
switch (currArg){ % Y& H; J+ Y" m
case "classid":
2 c( s4 |! D" d8 w6 ] break;
9 w3 ~ t, ?0 \* k1 H$ i case "pluginspage":
( W! }- C" d5 {( @+ }: x# w ret.embedAttrs[args] = args[i+1];
6 W/ o2 R8 o. s6 |1 k" x% H break;9 g" F2 s* Q' s( W- h
case "src":0 S9 L, p0 ]4 ^6 r v/ q0 j- a
case "movie":
7 j4 P+ c; ~4 B6 w6 p" l) g args[i+1] = AC_AddExtension(args[i+1], ext);
* a( ], Y) N) e/ H ret.embedAttrs["src"] = args[i+1];: Q6 A8 ]6 N P S8 E4 ^) C, E
ret.params[srcParamName] = args[i+1];
& t( j; x% I. f0 W break;; E( B W! x* m4 e3 j9 q
case "onafterupdate":" o0 F; W5 _+ T0 A8 l& I9 x( W
case "onbeforeupdate":
2 b: K/ \, ?) b" W, G case "onblur":
- y' y$ E$ N9 K/ Y* [ case "oncellchange":
/ w D0 ?. l$ ~3 s; n+ H9 g0 K case "onclick":
# b$ c+ h9 ~' j$ `9 C9 i: \0 d$ ? case "ondblClick":
9 v7 C7 r2 ?. Z1 L case "ondrag":
# \- V; F- G$ Z# b5 J, t* w case "ondragend":9 c/ I- `0 }1 I+ T* N+ r6 `
case "ondragenter":
: _, M* a, [. F* g. P: p, _ case "ondragleave":
6 R& O8 H) L! A6 F* P/ i0 J) N/ R case "ondragover":
$ W" M/ z0 ]7 X& _ M, x case "ondrop":
6 d) P6 p& @% x( g) G) i; L case "onfinish":
' }8 ~7 V6 ?' j2 |1 k* m case "onfocus":- v$ x+ {; l6 K- a" _! s) P: \, U( B3 r
case "onhelp":
' t& C9 u% ~: O2 m; S9 t& {5 V! D case "onmousedown":5 C! Y$ L. x8 R0 _6 M
case "onmouseup":' U: O$ _; e* t, z+ O' E) \+ D a
case "onmouseover":
2 }1 Z0 V2 Z8 x- f7 ]6 [ case "onmousemove":6 b" {7 M0 f; g% O
case "onmouseout":
3 Y0 M7 ~# A: U: ~8 g/ }) u7 a case "onkeypress":, r8 [. {3 d" ]9 b1 G+ D1 n
case "onkeydown":
/ P$ N6 j+ _$ |' \" ?2 c+ X case "onkeyup":
2 H* i1 E$ N! S+ Y+ R9 M0 h1 f2 { case "onload":- q' C) i; x5 M6 W# T
case "onlosecapture":. Z1 U" T! L. S F4 H
case "onpropertychange":
/ ]8 F" D7 O, M7 a3 P9 z case "onreadystatechange":
& `: H. M" b) v4 F a! O* ^ case "onrowsdelete":" S4 [4 ]: Y! H4 b
case "onrowenter":1 b5 Y1 ], T# n+ e8 [
case "onrowexit":
5 |6 R2 }9 ~# V9 Z4 s# w! Z case "onrowsinserted":
3 o+ x: ^, V; m$ s8 Q case "onstart":
4 f6 C$ ]6 t) m7 `$ Q case "onscroll":& A8 G8 z! o4 h; U0 |9 ^: k
case "onbeforeeditfocus":' n: b1 ?! b4 N
case "onactivate":( a* F& b1 L/ x" D4 N- e
case "onbeforedeactivate":
g% G# [4 q' K case "ondeactivate":9 n# Z- L0 I: K9 z
case "type":8 r' p% H& \9 u" j1 e
case "codebase":
$ u: s$ @* i' M- E/ ]; t8 Q ret.objAttrs[args] = args[i+1];
) {' y, l( Z; e/ T break;' H' a+ I! R% q
case "width":
9 i' r$ _2 a8 l5 l8 W5 \6 A& J case "height":
1 {) n* P2 _; P/ U case "align":
0 C4 M5 [* g1 T) U: W9 E( b* W3 m2 ^ case "vspace": 0 o9 u8 t- J: R. r
case "hspace":
3 }; w' d( ~$ o2 _) j$ e5 A" o/ ~ case "class":
' Z. U" Y6 a4 D8 p+ j& D" v! x case "title":
9 \: y7 }. \" b9 [' w% B3 j3 s case "accesskey":- z/ {9 N {. | M: a% n
case "name":
% f* h0 _4 e, a; m1 W" F& j case "id":
T: e. ?6 q9 w& n! Z case "tabindex":9 g- t; T. i; K! c
ret.embedAttrs[args] = ret.objAttrs[args] = args[i+1];
! ?5 `4 Z1 H. X6 ], j" W6 L break;
' h& S% s" h" Q default:
( p7 S) E* Z9 u7 S( g ret.embedAttrs[args] = ret.params[args] = args[i+1];' `" C i) ^# r8 i2 i$ o
}3 W l4 B# X( K! U+ g+ m; {
}
1 q+ h. x4 ?1 U% f$ { ret.objAttrs["classid"] = classid;# `1 L) k" r5 n/ G3 |# [$ I" U. i5 [! i' \
if (mimeType) ret.embedAttrs["type"] = mimeType;7 \# g; Q; N- d5 U
return ret;4 J% x* y/ l% `: i8 q8 s- I4 U
}( o6 v. e$ q4 `1 a
' T' |+ r2 E1 w+ C) k2 Y. B2、保存为:AC_RunActiveContent.js' V0 G8 C: c- o$ p4 B/ s0 R1 \& d
2 j2 p: W) C8 f5 m" s. f3、在所需的页面中添加;# Z, [; b7 F7 G# g
/ A) h* d7 P! p+ o7 A4 D% C z& ?<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
; G% v, U4 V% H8 A% {8 e. i: N) ~
- j/ s& e9 |$ v' Q' S( A+ t4、在插入FLASH的位置添加:
3 U2 Z' R) U& ~/ p. p2 T3 z+ q p; ?( O; c* {
<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>5 `* ^; z9 X3 g. j6 p; m! K: h
<noscript>
# R! P% B4 d; s1 u4 a; j<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">' P8 r; [% O% j$ ^9 h9 I
<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/index.swf">+ ]3 V* w# M" u8 ~! f2 X7 u
<param name="quality" value="high">: z8 P) `8 B6 c% _
<param name="wmode" value="transparent">
! k' u; H! k/ K) V( i; I/ A0 \<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 s. J2 s2 \; `; o</object>
9 |# _, o1 ~: l$ C1 C</noscript>
+ D2 i5 ?" V2 r3 p% P' I) t6 y% w
1 c$ k7 Q$ u" J8 i5、页面中的完整代码:/ X7 U8 a) d7 p) ~
( ]4 d e# a" U9 d' E4 | J<html>
3 J8 N. `$ H2 T<head>; e# c- A) T u! S
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />* O: y, k. o# v0 L: }
<title>IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法</title>
) Z& |# m* b1 J$ l# {0 T3 K<!--加载AC_RunActiveContent.js,此为DW自动生成的文件,无需修改,更改文件目录的时候记得修改这里的路径-->
4 z! C- V' V5 Z6 l7 x5 y/ S<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
! z, ]7 w. l7 {1 I- j( M% W<style type="text/css">
( {4 m, T) x3 Z4 b& x6 t2 W# D<!--
- d# x, D( G- F5 E( u- q: ^- j- ?3 Tbody {
q0 ^4 f/ ^/ a background-color: #CCCCCC;. J0 q* l( ]6 d
}/ Q" d. @- T" A2 Y, m
-->
6 ~& _; f) e5 z% Z! \- D" b" R</style></head>7 E3 b+ V0 r" E1 O9 j
<body>
% u2 o3 I4 y3 o. _- r
0 `% q e" l% {8 w6 V; H1 ^<!--下面这段JS修改的时候要注意,一共要修改四个地方:
0 M$ U& q# \4 Y, a; C" i! }+ C: Q300 是宽度;
$ r! l, L4 w1 Z) D7 p5 @+ a3 h% Y200 是高度;8 _$ `3 B# I3 M/ D: i( J% Q+ E5 W
images/killIEBorder 是路径和文件名,修改时注意,共有两处,还要特别注意,文件名后面不要加“.swf”,此后缀已经写在AC_RunActiveContent.js中-->/ [1 H- z$ Y& X5 |8 h! m+ J% E& [5 l) N
<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>- _* G4 B# I) j# G6 `: f0 P
<!--遇到浏览器禁用javascript时将调用下面这段<noscript></noscript>内的代码,就是Dreamweaver升级到8.0.2之前我们插入flash时的那段代码。<param> 标签针对IE起作用,<embed> 标签针对Firefox和Netscape起作用。-->
3 ~9 S# c/ E1 @4 L$ R$ w<noscript> d3 g R% v0 V0 s
<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">& {* R! x9 e# k% t; e7 y
<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/images/killIEBorder.swf">
& C8 S, L. k# } <param name="quality" value="high">. l4 i6 k6 `' S1 ?, L
<param name="wmode" value="transparent">
" s* ?7 b* q2 u: b/ v7 l% j <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>. v+ }' O% Z/ R" z+ Q/ M
</object>
D1 x- M, P) m- B0 j</noscript> |
|