Flash外框虛線解決方案

自從微軟某次針對瀏覽器的安全性更新過後,Flash網頁開始出現外框虛線,可見範例一即是以Object標記呼叫Flash的方式,以IE瀏覽器開啟時(Firefox並無此問題),Flash上會出現「點按以啟用並使用這個控制項」需先點一下該Flash才可正常啟用元件,之後在網路上找到了一個較佳的解決方案,是利用JavaScript加入呼叫Flash的HTML標記。

需先引入swfobject.js這個檔案

<script type= "text/javascript" src= "swfobject.js"></script>

在要放置Flash的地方加入

<div id= "flashcontent">無法顯示Flash時的替代文字</div>
<script type= "text/javascript">
  var fo = new FlashObject ( "so_tester.swf", "mymovie", "300", "300", "7", "#ff00ff" );
  fo. write ( "flashcontent" );
</script>

FlashObject的參數由左至右代表檔案名稱、ID、寬度、高度、Flash版本、背景色,fo.write是把呼叫Flash的標記內容寫到ID為flashcontent的DIV內,效果請見範例二

FlashObject也會自動偵測版本不符的用戶端並提示升級,效果請見範例三

另外有一些額外的設定可選擇性加入。

  • useExpressInstall:快速升級FlashPlayer,值為ture/false。
  • quality:預設為High(高品質)。
  • xiRedirectUrl:指定useExpressInstall升級完後的轉向網址。
  • redirectUrl:指定若FlashPlayer不正確時的轉向網址。
  • detectKey:變數名,預設為detectflash,若不想偵測flash版本,可在網址列加上detectflash=false。

用法示範:

<script type= "text/javascript">
  var fo = new FlashObject ( "so_tester.swf", "mymovie", "300", "300", "7", "#ff00ff" );
  fo. addParam ( "useExpressInstall", "ture" );
  fo. addParam ( "quality", "high" );
  fo. addParam ( "xiRedirectUrl", "http://blog.orz.tw" );
  fo. write ( "flashcontent" );
</script>

其他選擇性參數及設定值可參考Adobe網站上的說明:
http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_12701

若要將變數傳遞給Flash,可以下述方式達成:

<script type= "text/javascript">
  var fo = new FlashObject ( "so_tester.swf", "mymovie", "300", "300", "7", "#ff00ff" );
  fo. addVariable ( "variable1", "value1" );
  fo. addVariable ( "variable2", "value2" );
  fo. write ( "flashcontent" );
</script>

若變數由網址列傳遞,如http://www.example.com/?variable1=value1&variable2=value2,也可用以下方式接收。

<script type= "text/javascript">
  var fo = new FlashObject ( "so_tester.swf", "mymovie", "300", "300", "7", "#ff00ff" );
  fo. addVariable ( "variable1", getQueryParamValue ( "variable1" ) );
  fo. addVariable ( "variable2", getQueryParamValue ( "variable2" ) );
  fo. write ( "flashcontent" );
</script>

你可能感兴趣的:(JavaScript,IE,Flash,Adobe,firefox)