XHTML 鑲嵌 QuickTime 媒體

本文討論了三種在 XHTML 中鑲嵌 QuickTime 媒體的有效語法。

引言

在 XHTML 網頁中鑲嵌影音媒體一直是個備受討論的議題。最主要是由於 <embed> 不是 W3C 標準,加上 IE6 又引入了 ActiveX,使得大家有點不知所措。因為小弟在網頁中常常會鑲嵌 QuickTime 媒體,所以對這個問題做了一些 review,希望對網頁創作者有些幫助。

以我所知,有效的方法有三種:

  • <object><embed></embed></object> 巢狀結構語法
  • 以 Javascript 插入 <object><embed></embed></object>
  • <object><object></object></object> 巢狀結構

實際做法

以下將分別討論這三種方法。

1. <object><embed></embed></object> 巢狀結構語法

此方法是最常見的方式,但不能通過 W3C 檢測。請見以下的例子。

<object
  classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
  width="320"
  height="256"
  codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"
  align="middle">
  <param name="src" value="sample.mov" />
  <param name="autoplay" value="true" />
  <embed src="sample.mov" width="320" height="256"
    pluginspage=http://www.apple.com/quicktime/download/
    align="middle" autoplay="true" bgcolor="black" >
  </embed>
</object>
2. 以 Javascript 插入 <object><embed></embed></object> 的巢狀結構語法

此方法是 Apple 官方說法。只是將第一個方法改用 Javascript 寫出來,以逃避 W3C 的檢測。但在本質上,是完全相同的。請參考 Preparing Websites with Active Content for Upcoming Changes to Internet Explorer for Windows,其中介紹了二種方法。一種為直接撰寫 Javascript 以取代 <object><embed></embed></object> 巢狀結構語法,另一種則是以 Apple 官方提供的 Javascript Function 來完成。個人比較喜好後者,因為該 Function 很容易使用且語法簡單。無論哪種方式,都可以避開 <embed> 的存在而通過 W3C 檢測。但是一旦用戶端關閉 Javascript,則完全沒有作用。

3. <object><object></object></object> 巢狀結構

此方法由 realise.com 提出,請參考 XHTML Quicktime Object 以了解作法。本方法不使用 <embed> 故可通過 W3C 檢測,且在各種新版瀏覽器都有不錯的表現。這項方法有一特色是必須配合 CSS 以使 IE 有正常表現。但是依自己的經驗,若在 <object> 中需要 target 等標籤,仍不能通過 W3C 檢測,因為某些 <object> 內的標籤在 W3C 規範中也不被接受。

結論

如果您不在乎 W3C 標準,那其實什麼方法都不錯。如果您在乎 W3C 標準,請參考第二項及第三項解決方案。雖然第二項解決方案還蠻完美的,但若用戶端關閉 Javascript,則完全失效。所以,真的沒有一項完全 100 分的解決方案就是了!囧。