|
楼主 |
发表于 2008-1-8 22:28:00
|
显示全部楼层
回复:对比国内门户网站对Flash激活限制的处理
IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法。
" X0 }1 v: G \! G2 C5 k2 e
& d& O5 ^" f! n7 J! I; }当鼠标移到网页中的FLASH上时,会出现一个外边框。并有“单击以激活此控件”的提示。解决方法:
2 R+ s( J7 \& o4 H# T8 [/ i! b, p& u! t; u
1、新建JS文件:
( ?& |; t7 |! ^6 C! |0 Y- @8 o) c; P* z5 e1 s2 W
//v1.0
7 q* Y' ~5 F! v; t* ]//Copyright 2006 Adobe Systems, Inc. All rights reserved.3 p3 r! B+ a: s- b6 I
function AC_AddExtension(src, ext)9 {# k% ~0 J3 ~6 ~
{; U. t3 |6 P0 W: c) O
if (src.indexOf('?') != -1)/ W$ y6 M) n! s- l# l0 Z
return src.replace(/\?/, ext+'?');
" b+ i4 [7 W' D1 [ else
8 S c9 q2 ^8 n* x8 u6 K. P return src + ext;6 ^- |7 _3 ?8 w& v% {
}
( J; I# A% t5 ?$ t& @
" |- y- ?5 b( x" ?4 h" Y" nfunction AC_Generateobj(objAttrs, params, embedAttrs)
8 A, j; P: T) N, @8 }3 v{ + q. T9 D' I6 L/ U" F
var str = '<object ';
# g0 X$ C# ^" K for (var i in objAttrs)* G2 Z& Y+ X* {4 @
str += i + '="' + objAttrs + '" ';
- Y5 |( k! @! V& N$ ]' c+ X$ a str += '>';
0 o- X# e3 }- i! r& r3 f" j* b for (var i in params)- c9 u" F6 N; g' a
str += '<param name="' + i + '" value="' + params + '" /> ';6 l. C3 Z9 ~, }& c
str += '<embed ';
3 n5 m2 s& c( N9 U2 m5 H for (var i in embedAttrs)
" j Z5 W6 k$ V7 O) F0 M3 w str += i + '="' + embedAttrs + '" ';6 c# |- Q4 Z( D7 a$ }
str += ' ></embed></object>';3 z" Z( E& X: }9 v# j! P r
: E! Y U$ d- I4 X. F0 L" W document.write(str);/ a' {8 \. B6 U7 Z/ s! M
}6 o# S$ Y; f" [! m6 b' n7 \ F
9 ]3 p7 m( J/ Z3 f @( Tfunction AC_FL_RunContent(){
8 ]! p" N8 a: i e4 `. k var ret =
5 u: x4 H. i+ R AC_GetArgs* ^* [0 c2 Y; p
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
; ]' J9 ?! O. ]! W , "application/x-shockwave-flash"
7 N7 J1 `: P0 G7 ~0 Q );
1 U/ D# ^* ~$ Q& W" B" Q, F. H; m G AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
( h U; v8 n* l}4 ?( p' f4 I! l' Z* v! `9 E/ J
. e1 L$ E* I! Y. o F) F2 d
function AC_SW_RunContent(){
" X! O' J* L$ J& ?0 h6 Z var ret =
6 s/ i$ W5 S; b$ [8 o AC_GetArgs
I* G% j* l& N ]' N% w ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"; u. A& W3 W0 S$ e% k
, null2 z a; M: ^0 {) B/ m' ?: Y v: x
);5 v# _3 J9 J( z+ R
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
# [: \/ Y% f. h0 {, o}8 S; u* C. \4 ]* C% g# T
; R$ ^- U7 ?- `9 c# ~+ V) c9 h
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
3 a9 [+ Z* h q# d# T6 g7 Q var ret = new Object();% R, e3 Z6 y) B) o t! C, @
ret.embedAttrs = new Object();9 A7 `) p1 [1 f+ X* M( h
ret.params = new Object();. y3 i8 ~4 W0 A* ]
ret.objAttrs = new Object();6 k6 y& b; v" q% e4 Z: U
for (var i=0; i < args.length; i=i+2){
0 X- ~8 t- U, q var currArg = args.toLowerCase(); ! @# X) V' O, G) _9 x! s) c% H0 D. b
6 m/ V x* y# h* {) _) q$ n0 T" u e
switch (currArg){ , q8 q3 M% k% T% E6 @- F
case "classid":# T2 g9 A( P& m0 ~: m9 C# l1 e
break;
; x- ^9 B7 d7 Z1 u8 m case "pluginspage":5 w; s& m& [! ?6 N# x0 b: y+ G
ret.embedAttrs[args] = args[i+1];
% M9 U' F" Y4 V+ c" e% i a* p break;1 B, ?" J- l- u6 R+ M8 r- f$ c
case "src":8 Z) L( }1 h7 ]
case "movie": 4 p) Z2 M$ o- ?. Z" G
args[i+1] = AC_AddExtension(args[i+1], ext);
3 M/ v2 U' Y# K. W | ret.embedAttrs["src"] = args[i+1];
$ e: b9 L! \! D5 E1 ^ ret.params[srcParamName] = args[i+1];
: }- y! [" |5 q! T: {3 [: p break;+ ?, v/ B+ D! g" Z/ ~
case "onafterupdate":
& T& c) z! B; s2 {1 @, L case "onbeforeupdate":
8 H4 ]6 z- S" N/ [+ V$ V) G/ G case "onblur":. U |' m- D2 d7 m D4 _! W- E" F
case "oncellchange":
- g9 j% U# s! R case "onclick":$ I2 q# ^6 K: D& I# [4 b7 y
case "ondblClick": E4 l8 g5 w) Q% N5 C) Y9 A- I
case "ondrag":- i/ I$ q! Y/ \7 I$ `+ I6 v
case "ondragend":
6 c5 u$ j3 A3 X- L case "ondragenter":
- E" H& C" x, Z: a9 R case "ondragleave":
' l* ~ w# `. X0 c) r case "ondragover":
* Z6 ^4 r8 x* _ case "ondrop":1 j8 ~$ U# q8 i" c4 M
case "onfinish":; j# b! L+ Y1 d( B3 l4 m7 s3 L
case "onfocus":
( P7 u5 \5 T4 d case "onhelp":
- i* c1 I, _, ^2 T+ C/ R8 ? case "onmousedown":
& g* G7 i( Z) B! t1 j8 O0 A case "onmouseup":. Q, D' H j7 G
case "onmouseover":" r! ?: B$ x* U9 }7 R6 Y
case "onmousemove":
1 i1 x- l4 I8 C- p# X9 l8 V case "onmouseout":: _. k! ?/ k( S- P
case "onkeypress":
. \7 \2 K' J3 i0 U; n& z- I case "onkeydown":
9 P# c, x; ?% }: k, }( k+ K case "onkeyup":
6 f2 P2 D: J6 `7 w8 U case "onload":
2 \9 ~/ A9 R, k5 k case "onlosecapture":
3 `+ O+ N8 K$ D' J! d- T case "onpropertychange":
4 B$ W- \* _4 _- f# ~. p% l case "onreadystatechange":% z1 y( J9 g8 G) l) E
case "onrowsdelete":" [9 t3 f$ z+ J( k2 f
case "onrowenter":7 q2 ?" ^; n9 ?( r" s
case "onrowexit":
! l3 ^6 [1 l% O4 w8 O% X case "onrowsinserted": C3 ^& I& z! c2 _/ c
case "onstart":
' ^3 X; X. W' V% E$ h5 p case "onscroll":
2 ?7 e* {1 ?6 O case "onbeforeeditfocus":4 R( J1 H) }8 i) t+ }; c- N A; T/ t
case "onactivate":
7 d' n% E2 M+ t6 M7 c2 W/ m case "onbeforedeactivate":
6 R! ?, G# m0 p# J case "ondeactivate":% v* m& f& W; B% q
case "type":
+ k& Q4 X' V3 G5 E case "codebase":
- b/ {- Z, g1 f ret.objAttrs[args] = args[i+1];
9 o1 O* e. G* g2 j# G break;$ d- `' U1 M( u4 a, R1 @4 S2 y- p" s
case "width":
$ @- X5 L$ K6 C5 `& x7 Q case "height":* B* T6 f! E% f" e; M& t9 i
case "align":/ G% U) f; ?2 o( i T2 R
case "vspace": / O' A) ^1 L+ t: l, n- L/ A0 W8 u
case "hspace":
) g. h$ d9 o8 |5 |( {9 Y5 t case "class":7 _: U" _' C) \, }
case "title":' b! {# ~4 u% O6 T b
case "accesskey":# f- N' H+ i9 a% L
case "name":( M" i2 q# S0 B B& I
case "id":
6 [+ x0 C! y* U3 G1 g! t case "tabindex":
& }6 L) o. `- u2 [7 Z h" L" N ret.embedAttrs[args] = ret.objAttrs[args] = args[i+1];6 ^, K* A# c* ]0 D1 ]
break;" m! G; }# Z( I1 Q* o( t
default:
1 s0 L& f2 l; v6 n) W1 ^% `- j M; o ret.embedAttrs[args] = ret.params[args] = args[i+1];
5 z( e5 ~8 [) M }
# N8 X* w2 W5 B }7 \% N; K1 U0 d$ o" { C( ?
ret.objAttrs["classid"] = classid;
, R8 [: Z2 l8 a* D/ n. r; Z" m if (mimeType) ret.embedAttrs["type"] = mimeType;2 c3 T$ D1 _2 M! G6 i( d
return ret;; L1 W% I) w2 }6 Q8 J
}% Q) z, V9 L. ?' d2 w2 {3 z$ {: H
. c3 x( N. z9 K% l0 e6 p6 {
2、保存为:AC_RunActiveContent.js
6 m- @, @" P5 b: M9 ~& s% B% B; |- L. k3 K2 w
3、在所需的页面中添加;
* C! d d( u0 K6 {# O9 _ w% x
; b$ k3 h, M2 _* `( M! R; k+ P<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
4 g( T2 M( L9 h+ m J9 c& j& }& E B. [
4、在插入FLASH的位置添加:' q# D6 h1 d' E6 K
; j% u8 h! r# u. u$ _( g, M- l0 a% }<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>, s; d2 A; l# M
<noscript>& f% b. u& h7 c9 g2 a, Z
<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">
# E4 t% I) E) r. x. H3 v. k& E<param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/index.swf">2 i E0 _: T/ \, i. \9 u6 R
<param name="quality" value="high"> _. o+ q$ B* C) F* X/ ^
<param name="wmode" value="transparent">
8 z3 ], s3 t( r<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>
7 s* z6 u3 B% d2 F- G0 Z9 N</object> L4 O/ X6 |8 F7 Q6 {; V, D3 @
</noscript>
# b8 V% x/ ~4 z, C" B! s$ B3 k' \( t. L" h; D3 L$ [9 Q! u0 \
5、页面中的完整代码:
% L* @+ }, a. a8 F7 p( R0 f* |9 o1 r6 K0 u, G
<html>6 Q5 o7 J4 I' Q# U! L* i
<head>% c9 V8 U- B" B" A9 z
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />5 q' g; ~0 g1 L; N/ `
<title>IE中的Flash出现激活框“单击以激活并使用此控件”的解决方法</title>
2 B: {, D: |. D0 y+ B) U! F5 N<!--加载AC_RunActiveContent.js,此为DW自动生成的文件,无需修改,更改文件目录的时候记得修改这里的路径-->
) h& Z# c+ p+ U! l. T/ C1 N<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
, q& M; M5 I$ E4 c/ z<style type="text/css">% e; U5 W2 Z$ o
<!--; @8 V3 G o. |# ^! T) L
body {
" j1 ?2 V% K% m+ o background-color: #CCCCCC;
. ]/ F( X' o9 x( P- s}4 A% R6 C3 V' O+ b0 v
-->
; t- X; Y' p% k+ Q* [& C0 N</style></head>% [; Q8 v8 R5 M6 s1 r+ s/ f
<body>& m0 n U" V; Q# E: ~* V, a
$ [: M; [5 Y, X: D
<!--下面这段JS修改的时候要注意,一共要修改四个地方:
# o- V& T/ K% x9 h2 L+ A3 H U300 是宽度;
, P" K+ I! t, D3 n. u2 l3 s200 是高度;
+ ?3 c) Y- H/ t! q3 @( qimages/killIEBorder 是路径和文件名,修改时注意,共有两处,还要特别注意,文件名后面不要加“.swf”,此后缀已经写在AC_RunActiveContent.js中-->
1 E$ }! L/ |8 C" Z' o2 w<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>0 l- R, E& `; Q. b A n# f2 l1 u
<!--遇到浏览器禁用javascript时将调用下面这段<noscript></noscript>内的代码,就是Dreamweaver升级到8.0.2之前我们插入flash时的那段代码。<param> 标签针对IE起作用,<embed> 标签针对Firefox和Netscape起作用。-->
y6 j( _ C" G$ S, T. ~* d- j8 t0 x<noscript>' x4 x. Q/ k! 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">
v. @- m/ J6 b M <param name="movie" value="http://www.webjx.com/htmldata/2007-04-22/images/killIEBorder.swf">) H( r# k* z1 ^+ U1 H+ i
<param name="quality" value="high">: `. Z8 c% _8 q, S! y: P
<param name="wmode" value="transparent">
! C$ M# F Z# d1 T <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>0 f. A1 ? ^+ |6 c# f4 H4 g* \2 w5 o
</object>) M* k, W/ D$ j- ?8 r$ U0 m
</noscript> |
|