|
楼主 |
发表于 2008-1-8 22:28:00
|
显示全部楼层
回复:对比国内门户网站对Flash激活限制的处理
IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法。/ H0 P, y w: O& M8 Y a
2 g. J+ a, Y a% \: Q' `当鼠标移到网页中的FLASH上时,会出现一个外边框。并有“单击以激活此控件”的提示。解决方法:
! s/ W2 ?& T$ |- Q% M- o7 e* M) d: u4 o3 @3 H& C
1、新建JS文件:
; ~3 ~) J& E' L9 t. R8 k- Y
# l) c5 q: r: p2 ~//v1.0
7 Y, `, k7 K! p4 P' g//Copyright 2006 Adobe Systems, Inc. All rights reserved.& K4 S |4 J- j, D
function AC_AddExtension(src, ext): W0 _+ d5 ?3 K. b8 C% @3 K& ?
{
* X) K( S% Q2 q- t7 C) u2 _ if (src.indexOf('?') != -1)
% ?% P/ k) S8 m return src.replace(/\?/, ext+'?');
4 i: e l9 M. H' x; ~! z* ~ else
g9 B0 Z; h% W) V5 R0 t7 D return src + ext;: ]$ [# j/ f% j8 k I
}' X" K5 J W: g g9 c
- S. l, l/ E" P5 ffunction AC_Generateobj(objAttrs, params, embedAttrs) - I4 `- c- I& a. z
{
( O) H% w! k X4 _/ X# P" U$ _ var str = '<object ';5 \2 k/ {/ U0 P& m% N' E, \! z. r8 T5 u
for (var i in objAttrs)% ~% g) E6 _ v- X
str += i + '="' + objAttrs + '" ';
) w g5 \( G5 q I# ^: X% J str += '>';0 ^0 w+ T' F% e: u# n9 C
for (var i in params)
) g6 I6 X2 G5 y1 g str += '<param name="' + i + '" value="' + params + '" /> ';
. @7 [0 ~6 N* A str += '<embed ';
5 ^: t3 c7 X' q; ^1 E for (var i in embedAttrs)
6 G! M; H+ L5 s str += i + '="' + embedAttrs + '" ';
( n, p i; p- T3 c) E* k str += ' ></embed></object>';
/ S6 z; W4 t$ G" k$ ]8 N8 G0 J5 x* _! m0 }
document.write(str);
( u7 W3 Z5 a: K% h4 O& F}
, N7 y( B1 b1 T7 I" \. \+ I0 D8 n6 o
function AC_FL_RunContent(){
E: Z1 c6 ], S var ret =
( c" [; o* j9 D$ l- L( I( H2 E AC_GetArgs
}' y# t' w) V ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
% X8 V$ ^- b7 Z% x! g! } , "application/x-shockwave-flash"3 N" ?& S' U- N
);
8 a4 e8 t j1 B8 o7 m4 s" D, ^, C AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);3 Y7 I1 K0 c3 r9 l" ]
}
4 g; Q+ o4 ^- L! z3 B5 _( \; J7 D% ^2 a; j; u- p5 [
function AC_SW_RunContent(){
4 R" G7 \" W: c% u) k/ E6 k9 W- H1 | var ret =
4 O, o0 r4 E. H. V" ~. ^3 D- e AC_GetArgs; H/ k' e7 d1 O: K5 ?" Z) |2 k
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
S3 [% u0 v( d9 Y0 ~) f. ?( d. p , null
. }; S! w) \* ?. n* J );. q3 {2 n: |9 v& Z* K' h% D
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);+ g! ~, b2 {( f% U2 _, \7 H% @* L( ]
}
; O; ?! z$ ]9 E, ~
8 U7 f1 M' S! ~5 l) Q+ u% {function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
; n* _1 z) ~( J z3 w4 q5 H var ret = new Object();
' j* ~3 r* ]! K, [ ret.embedAttrs = new Object();
! X' [* |1 J# e! B3 a# \! O! `0 N ret.params = new Object();& F+ ?" f' C" k. T
ret.objAttrs = new Object();$ f# K! I+ m2 }, b- w7 U
for (var i=0; i < args.length; i=i+2){
. W1 a+ }2 j# y# t var currArg = args.toLowerCase(); * H" a J5 Z0 k; ~7 \: u
( B9 w, V6 {1 a* F, M3 C0 {8 B switch (currArg){
! v: L8 U4 h6 L! B9 d% y case "classid":, U& t# j4 R( a1 H# x# X
break;
# ?6 V) a _) ?6 m* t2 c case "pluginspage": k) Z7 d& N& b% B' `3 O
ret.embedAttrs[args] = args[i+1];
' C, a' n: y& M1 @! Z break;9 _& u4 j w$ c7 u
case "src":7 d3 j4 h- \& Q5 v4 K' V
case "movie": 6 \9 r- V' i! B q% ?! K
args[i+1] = AC_AddExtension(args[i+1], ext);
/ _& k6 Q/ [, B; s5 _- J4 N9 u ret.embedAttrs["src"] = args[i+1];, l8 k- |/ f, H. }5 X B1 _/ v
ret.params[srcParamName] = args[i+1];
* X% _; _, `, G1 o2 P break;
+ M, e6 r8 ]6 _2 R/ o0 D" f case "onafterupdate":
( X4 l) [' T# y. L case "onbeforeupdate":9 x3 p$ B' v( a% ?
case "onblur":
; P% n' L/ u9 R0 r+ b# E5 C$ O case "oncellchange":. K7 {$ z7 ~1 [ m
case "onclick":" v2 M; C9 p% r' @8 ?. d! }
case "ondblClick": q- s/ D; G/ h4 G4 B$ x0 b$ r& E
case "ondrag":
% L1 N5 _) o9 j$ @7 H( ] case "ondragend":
0 _: G4 N- e3 M" L case "ondragenter":, h( {; m: J3 }2 R$ C5 N
case "ondragleave":7 _0 A7 l3 Z) E- M& y
case "ondragover":
S2 H- e0 U: L8 t5 @ case "ondrop":! a( l7 ?: e$ a0 m* l
case "onfinish":
6 C) i" N6 p. y A6 G case "onfocus":
+ q4 O) r" N1 d Y0 s) e+ N$ e+ i case "onhelp":: V0 y6 h5 A0 y9 i. l3 W0 D4 x
case "onmousedown":
. w. l% X/ Q" g case "onmouseup":( e/ ` J+ x* u5 S
case "onmouseover":
3 F- ^& C! t+ y case "onmousemove":$ Q) q0 h3 i( B7 ?
case "onmouseout":
1 y- n6 K) t6 ?+ |- d. ~! Z case "onkeypress":
. b$ R Q3 e7 J& ~2 } case "onkeydown":
/ @9 I+ q" h$ ~- @2 C: D1 l case "onkeyup":8 H" I( |2 V8 _; T
case "onload":
/ A) u7 U$ Z3 Z2 n% y: I; o* q( l+ } case "onlosecapture":
L: }6 ^5 U7 k* a$ M: o case "onpropertychange":
+ e* V+ I+ _" N6 u% H% q; v% E case "onreadystatechange":% o# f) z( |" h- e3 Z# |. j
case "onrowsdelete":
0 r( M7 \' }. j0 Q e' e4 b0 L! G case "onrowenter":
x$ e* V% V3 v& k' z7 F9 N case "onrowexit":
. H8 t! U6 z7 l% Q, } case "onrowsinserted":
% _. {! X/ V7 K case "onstart":, H. Y; N; o# R9 y5 F! V. v
case "onscroll":
+ _! u, X& P$ o& ^5 a3 W' r! S case "onbeforeeditfocus":
) e+ O+ R1 C, t case "onactivate":
3 F4 h( v7 M$ u) M case "onbeforedeactivate":" o9 x5 R; I: v4 F9 O; l% O5 L4 K4 g
case "ondeactivate":
1 F+ x0 I3 q0 f( J6 \! f case "type":
2 _1 v6 G5 H% h7 M" |3 Z+ X case "codebase":
- ~3 {% z5 F0 m ret.objAttrs[args] = args[i+1];+ f: Y; ^, U4 y, Z6 D8 y
break;4 B* ^$ ^" Q3 B; J5 B! I- r
case "width":
3 @3 |) q, q1 C% _; D case "height":
5 s/ S8 m( e3 c3 o! ^; j case "align":6 ~2 q2 z: @* b% C1 P
case "vspace": % ]1 f4 a4 N; C( w- j, [) c+ a
case "hspace":2 T3 e$ S& D' ]% d
case "class":- n0 n0 r- O5 U9 e
case "title":
% y0 s2 |+ V- X/ q9 n case "accesskey":
, X. c7 j' C* ]) C3 x5 U case "name":7 d" q; G/ Q x2 d. W: S0 V
case "id":+ O |' B% J* T9 V( i
case "tabindex":
3 Z4 Y9 I' Y3 Z; T$ U ret.embedAttrs[args] = ret.objAttrs[args] = args[i+1];
: J& s1 o. ?% ~# Q9 c9 b8 i# i break;, E2 ~/ [* C/ H9 [! e
default:7 {% A( s8 Q$ F6 V9 W5 G0 ~1 f0 o6 T$ [
ret.embedAttrs[args] = ret.params[args] = args[i+1];* T* J4 v7 Y1 _* F& ~3 ?
}
- J: U5 R9 [8 n% i) d }: N/ k$ w2 u2 u
ret.objAttrs["classid"] = classid;
! A, P8 V- f+ |2 g* Y- A if (mimeType) ret.embedAttrs["type"] = mimeType;
9 B+ C; w r2 { return ret;
2 s. [. H8 o) p1 ^}
( m+ C8 c. V# x5 Z% R. d7 D5 h+ W! C. b
2、保存为:AC_RunActiveContent.js+ C, D2 h# }4 a$ j% Q% \' @
6 ]& I3 f7 X' e' Q5 H& e- q3、在所需的页面中添加;
/ d7 H# I5 B1 W/ } K) ^& y
8 L4 i s9 R$ S; |* r<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>% {1 x* ?+ l& W9 k2 T; ~3 S# K3 y; D
" ]0 ~1 _+ ?3 C. c) F4、在插入FLASH的位置添加:
* X1 M+ d/ i. l9 [: a* v& |# P
3 s0 L; D% E# r4 k<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 Q8 g5 b9 ]. |$ Q t6 P! n4 `
<noscript>$ S6 S5 ]' c. c! s, x
<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">
/ Q' g: Z$ a8 y9 F& j% S$ U<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/index.swf">
e8 Y# P; b7 |. m<param name="quality" value="high">
6 ? a" E Y. L! p! G<param name="wmode" value="transparent">1 t: C! U; [" k$ `; Q
<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>2 D0 O0 m% G3 g9 a
</object>* N; j, C+ r( ?. Q/ r
</noscript>
+ t& H; C3 I) s- }0 t, h
- P- p7 e& [. Q) ^5、页面中的完整代码:
8 t7 a) Q4 ]* R$ P) d9 m7 N% V, i8 U5 ]8 @6 U+ G& q0 I* q
<html>
" v5 F# v7 z6 q+ @: V. O<head>
+ u7 y2 G5 Y+ z% q b5 l6 b<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
% ?9 x4 f5 t3 v- H3 {3 b7 Y6 |+ V<title>IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法</title>
+ `. @$ W! W/ ]& F }" W4 ?<!--加载AC_RunActiveContent.js,此为DW自动生成的文件,无需修改,更改文件目录的时候记得修改这里的路径-->6 \1 L( M+ P ^9 P+ p( @
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
' w' _2 a& c4 b! M; C) Q<style type="text/css">) Z3 V# @8 h x" p- q/ l7 b
<!--0 B6 n$ B* f, }+ s
body {8 p: H! U: f& u; A/ b" C
background-color: #CCCCCC;
+ _# ?. J. x% j- y/ P}
* I6 J; C$ m" I6 K! Y5 [" }-->7 B8 T$ L5 ?" q, F
</style></head>
2 M3 S, s! y7 M7 o/ I* D' R3 w. [<body>
" ^: {% x9 N! R% [4 C. [
, G! Q4 `3 g9 V( q* `<!--下面这段JS修改的时候要注意,一共要修改四个地方:
1 z& f% T# L) ^, \300 是宽度;+ i( S% h% L/ ?9 A. ], \. _
200 是高度;
2 L3 E5 }4 z9 L {+ \; aimages/killIEBorder 是路径和文件名,修改时注意,共有两处,还要特别注意,文件名后面不要加“.swf”,此后缀已经写在AC_RunActiveContent.js中--># {! [3 {5 e0 @
<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>
- U- B- d8 F8 ^: u, l* o: w<!--遇到浏览器禁用javascript时将调用下面这段<noscript></noscript>内的代码,就是Dreamweaver升级到8.0.2之前我们插入flash时的那段代码。<param> 标签针对IE起作用,<embed> 标签针对Firefox和Netscape起作用。--># D5 o! z0 Z% Y% A
<noscript>; I+ Y( F; |) L6 i2 x0 y
<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">5 ]- G, d( ?9 T/ H
<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/images/killIEBorder.swf">
9 v$ c8 o& ?2 _ <param name="quality" value="high">
1 H8 c, m' ^; D+ Y8 P# E0 N3 Z0 l <param name="wmode" value="transparent">
* W0 y$ z0 W. S8 Y) ?) @( ? <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>
, ^ ]! d' G& I* z. d& C</object>
4 W. _* @/ K+ A! S7 k</noscript> |
|