文章引用自 Jame's fantasy
http://stu.dhjh.tp.edu.tw/plog/index.php?op=ViewArticle&articleId=1085&blogId=3
微軟最近對IE的Active X做了更新,原因似乎是因為技術版權的問題。
這樣的影響方式對使用者來說,只要是使用到Active X控制項的部份,就必須再多點一次滑鼠才能使用該控制項提供的互動功能。
因此,如果最近有做過windows update的相關更新後,你會發現在存取使用embed語法的網頁時,在flash控制項的周圍會多一個虛線框,要求你點一下該控制項來啟用。
這樣看起來真的是滿怪的(甚至有同事問我說,這樣是不是電腦中毒了
),於是上網找了一些資料看看有沒解決的方式,發現針對Flash的部份,可以使用Flash object的方式來解決。
在SWFObject的網頁中說到:
SWFObject is a small Javascript file used for embedding Macromedia Flash content. The script can detect the Flash plug-in in all major web browsers (on Mac and PC) and is designed to make embedding Flash movies as easy as possible. It is also very search engine friendly, degrades gracefully, can be used in valid HTML and XHTML 1.0 documents*, and is forward compatible, so it should work for years to come.
使用的方式就是把原來使用embed的語法,改成下面的語法(先到swfobject網頁中下載swfobject.js並上傳到相對應的目錄):
<script type="text/javascript" src="swfobject.js"></script>
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
so.write("flashcontent");
</script>
其中的紅色字體的部份要相同,另外說明一下SWFObject中的值表示的意思:
- movie.swf:swf檔名。
- mymovie:swf檔的id(如果你的flash是6之前的版本,id就用不含附檔名的主檔案名稱;例如檔名為movie.swf,id就用movie;如果是7以後的版本,在輸出成html時會有id的值。)
- 200:flash movie的寬度(單位:px)。
- 100:flash movie的高度(單位:px)。
- 7:flash的版本。
- #336699:背景顏色
如果你要增加其它額外的設定值,可以參考下面的範例:
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100%", "7", "#336699");
so.addParam("quality", "low");
so.addParam("wmode", "transparent");
so.write("flashcontent");
</script>
其它的應用方式請參考swfobject的網頁說明。
參考連結:SWFObject: Javascript Flash Player detection and embed script
測試結果,補充注意事項 (by 小璇子)--
1. 最好輸出Flash Player 6 的版本(除非有用到7以後版本才能呈現的效果),如此id名稱就與輸出的名稱相同,不用再發佈html去查id的值
2. 若同一頁面有好幾個Flash,注意div id 的值都要不同,so.write中的也要改