微軟更新了IE浏覽器
針對IE的更新
使ActiveX內容不能自載入的問題引起了許多人的關注.這些改變可以在Adobe的某些軟件中看到
包括flashplayer
Authorware player
shockwave Player
SVG Viewer
Help Center 和 Adobe Reader
當然還有 Sun Java
Apple QuickTime
RealNetworks
RealPlayer和其它的ActiveX
通過某些方法嵌入到html頁面中的交互內容可能不能響應用戶的輸入(例如
鍵盤
鼠標)直到用戶點擊要麼激活要麼繼續loading
下面我的看看它到底是怎麼一回事
並怎樣解決它來使用戶最大限度的方便浏覽
因為webstudio 的flash網站建設是主要的業務
所以很是想找到簡單的解決辦法.
問題 當你查看web頁面時
windows下的IE浏覽器會將ActiveX內容顯不為一個矩形框和一個提示內容為
Click to activate and use this control
意思就是你需要激活ActiveX的內容才可以查看或交互控制
ActiveX內容可能或不能象你預想的那樣載入並進行播放
可以查看Adobe提供的演示
這裡
Adobe的解決方案
有如下兩種解決方法:
方法
如果你浏覽了包含ActiveX的頁面
點擊這個內容激活它
方法
如果你正在開發一個網站
移除針對ActiveX內容所需的用戶激活過程
針對此Adobe提供了一份基於javascriptr 解決文檔.這裡
通過使用Adobe的解決文檔可以解決上述問題.
那麼除了上述方法之外還有沒有其它更簡單的方法呢
答案是肯定的.可以使用deconcept 的flashObject 相比而言會比使用Adobe的方法更簡單一些.並且運行狀況是良好的.這裡下載Download FlashObject
(
hits)
基本方法如下
只需要將flashobject
js 包含在你的html頁面內
然後加上一點javascript代碼嵌入flash swf就ok了.
它的工作方式如下
代碼:
<script type=
text/javascript
src=
flashobject
js
></script>
<div id=
flashcontent
>
This text is replaced by the Flash movie
</div>
<script type=
text/javascript
>
var fo = new FlashObject(
movie
swf
mymovie
#
);
fo
write(
flashcontent
);
</script>
簡單分析一下
或是你可以仔細看flashObject的文檔
代碼:
<div id=
flashcontent
>
This text is replaced by the Flash movie
</div>
這一段相當於我們在為放置flash文件而准備的一個holder
有些象我們常用的空的MovieClip holder
為放入內容而准備的.如果你沒有裝flashplayer
那麼裡面的那行字會顯示出來如顯示為
This text is replaced by the Flash movie
如果你裝了flashplayer
那這行字是不會顯示的
用戶基本上是看不到的
同時它還有一個好處是你可以把這行內容變成的你搜索關鍵字
google會很容易搜到它的.呵呵
一舉兩得.
下面這段一看就知道是什麼了.
代碼:
<script type=
text/javascript
>
var fo = new FlashObject(
movie
swf
mymovie
#
);
fo
write(
flashcontent
);
</script>
用來嵌入swf
比如當前的影片文件是
movie
swf
id是
mymoive
寬是
高是
flashplayer版本是
背景色是#
下面我們來看一下我們嵌入一個flash的范例
根據上面的基本工作方式
我們還要嵌入一些其它的參數
來滿足我們一些其它的需要比如我們有一個文件名為ws
swf
我們想把它嵌入到頁面中
又不至於受IE更新的影響
在頁面中包入flashobject
js文件
<script type=
text/javascript
src=
flashobject
js
></script>
一般這行代碼可以寫在body標簽之前即可
把下面這段代碼加在它下方
代碼:
<div id=
flashcontent
></div>
<script type=
text/javascript
>
var fo = new FlashObject(
ws
swf
mymovie
px
#
);
fo
addParam(
quality
low
);
fo
addParam(
wmode
transparent
);
fo
addParam(
salign
t
);
fo
addParam(
scale
noscale
);
fo
addParam(
loop
false
);
fo
write(
flashcontent
);
</script>
從上面的代碼中我們看出
我們將要把FLASH放在id為flashcontent層中
它的寬為
高為
像素
那麼應是和我們的swf文件的大小是相同的
如果你想縮放也可以是不同的
下面var fo = new FlashObject(
ws
swf
mymovie
px
#
);
是嵌入flash文件
在之前的內容已介紹過它裡面的參數
其中的ws
swf可以是相對路徑也可以是絕對路徑
如你可以直接輸入網站加上你的swf文件名字
再下面的一段就是我們可以加入的參數
從上到下分別為quality質量
wmode transparent透明
salign對齊
scale縮放
loop循環等
這樣我們的嵌入過程就完成了
如果你想使用flashVars來進行html與flash之前的通訊
使用flashobject也是很容易的
但有一點使用flashobjcet時只有在swf剛一載入時傳遞參數
並且是以值對的形式來傳遞
如下:variable
=value
&variable
=value
&variable
=value
使用方法如下:
代碼:
<script type=
text/javascript
>
var fo = new FlashObject(
movie
swf
mymovie
#
);
fo
addVariable(
variable
value
);
fo
addVariable(
variable
value
);
fo
addVariable(
variable
value
);
fo
write(
flashcontent
);
</script>
一旦這一步完成
那麼所有的變量就已經傳入到flash
你就可以靈活的在你的flash中的_root上使用了
deconcept flashObject還提供了可以加入其它參數的說明.你可以詳細查看
除了這種簡單方法之外
這還有一個與之類似的
我並沒有仔細看
如果你有興趣可以仔細看一下.這裡ufo
哈哈
針對微軟IE的更新改變
我們已經能輕松的去掉必須要點擊一下才能看的過程了.如果你有空不要忘了去微軟網站上看一下
它用的是什麼
最後
不要忘了更新你網站
Cheers :)
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19280.html