瀏覽器視窗與網頁嵌入設定的示意圖

← INSIGHTS & PERSPECTIVES | 前端開發

在瀏覽器內插入 Flash 的幾種設定:透明、全螢幕與 JavaScript 存取

整理在瀏覽器內插入 Flash(SWF)時最常用的三種 object/embed 設定:wmode transparent 讓 Flash 顯示透明、allowFullScreen 允許全螢幕、allowScriptAccess 允許 Flash 存取網頁內的 JavaScript,附完整 HTML 範例程式碼。

這篇文章整理我在網頁內插入 Flash(SWF)時最常調整的三種 object / embed 設定:讓 Flash 顯示透明(wmode)、允許全螢幕(allowFullScreen)、以及允許 Flash 存取網頁內的 JavaScript(allowScriptAccess)。每種設定都附上可直接複製的完整 HTML 範例。

如何讓 Flash 顯示透明(並被其他 div 蓋住)?

關鍵是 wmode 參數設為 transparent。這項設定也可以讓 Flash 被壓在某些 div 之下,解決 Flash 圖層永遠浮在最上層的問題。

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="770" height="148">
  <param name="movie" value="swf/top.swf" />
  <param name="quality" value="high" />
  <param name="wmode" value="transparent" />
</object>

注意 wmode="transparent" 要同時寫在 <param> 與 <embed> 兩處,否則只有部分瀏覽器會生效。

如何讓 Flash 允許全螢幕?

加上 allowFullScreen 參數並設為 true,SWF 內部就能呼叫全螢幕 API:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="780" height="560" align="middle">
  <param name="allowFullScreen" value="true" />
  <param name="movie" value="swf/top.swf" />
  <param name="quality" value="high" />
</object>

如何允許 Flash 存取網頁內的 JavaScript?

用 allowScriptAccess 參數控制。設成 sameDomain 表示只允許同一個網域的腳本互動,兼顧功能與安全性:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="780" height="560" align="middle">
  <param name="allowScriptAccess" value="sameDomain" />
  <param name="movie" value="swf/top.swf" />
  <param name="quality" value="high" />
</object>

三種設定快速對照

目的參數建議值
透明背景、可被 div 蓋住wmodetransparent
允許 SWF 進入全螢幕allowFullScreentrue
允許 Flash 呼叫頁面 JavaScriptallowScriptAccesssameDomain

常見問題

Q為什麼下拉選單或 div 會被 Flash 蓋住?

因為 Flash 預設的 wmode 是 window,會浮在所有 HTML 元素之上。把 wmode 設為 transparent(或 opaque)讓 Flash 進入瀏覽器的一般合成流程,div 就能正常疊在它上面。

Qwmode="transparent" 要寫在哪些地方?

必須同時寫在 <object> 內的 <param name="wmode" value="transparent" /> 與 <embed> 標籤的 wmode="transparent" 屬性上。只寫其中一邊時,IE 與使用 NPAPI 外掛的瀏覽器行為會不一致。

QallowScriptAccess 可以設成 always 嗎?

可以,always 允許跨網域的腳本互動,但會擴大攻擊面。若 SWF 與頁面在同一個網域,建議維持 sameDomain,只在確有跨網域需求時才放寬。

Q現代瀏覽器還能播放 Flash 嗎?

不行。Flash 已於 2020 年底終止支援,現代瀏覽器移除了 Flash 外掛。新專案應改用 HTML5、Canvas 或 WebGL(例如 PixiJS),這些舊設定僅適用於維護歷史專案或本機模擬環境。

參考資料

延伸閱讀

最後更新

2026-08-28(原文發布於 2009-04-02,本文保留原始筆記內容並補上 GEO 結構。)

關於作者

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2009-04-02