HTML <object>, <param> 嵌入外部資源 (external resource)

<object> 標籤 (tag) 用來在網頁中嵌入外部資源,這個資源像是一張圖片、一個 browsing context 或一個瀏覽器外掛 (plugins) 像是 Flash, PDF 等。

<object> 標籤上的屬性 (attributes):

  • data: 外部資源的位址 (URL)
  • type: 要嵌入的資源的 MIME type
  • typemustmatch: 指定瀏覽器需檢查載入的外部資源的 MIME type 要和設定的 type 屬性一致,增強安全性考量
  • name: 指定此 object 元素的名稱
  • width: 一個數字,指定嵌入內容的顯示寬度,單位是像素 (pixel)
  • height: 一個數字,指定嵌入內容的顯示高度,單位是像素 (pixel)
  • usemap: 指定一個關聯的 <map> 元素的 hash-name;值的格式為 # 加 <map> 元素的 name 名稱
  • form: 指定一個關聯的 <form> 表單元素的 id

<object> 標籤裡面可以有零個或多個 <param> 標籤,用來設定對外部資源的控制參數,不同的外部資源或外掛會有自己不同的參數可以設定。

<param> 語法:

<param name="參數名稱" value="參數值">

<object> 使用範例:

嵌入 Flash
<object data="move.swf" type="application/x-shockwave-flash"></object>

嵌入 Flash 並設定參數
<object data="move.swf" type="application/x-shockwave-flash">
  <param name="foo" value="bar">
</object>

嵌入 PDF
<object type="application/pdf"
        data="example.pdf"
    		width="250"
    		height="200">
</object>

在 <param> 後面可以放當外部資源載入失敗時給瀏覽器顯示的內容:

<object data="move.swf" type="application/x-shockwave-flash">
  <p>Flash 載入失敗</p>
</object>

<object> 和 <embed> 之間的差異?

<object> 和 <embed> 的用途其實蠻類似的,細節差異大概是 <object> 安全性好一些,也可以設定當資源載入失敗時的 fallback 內容。

如果你是想嵌入單純一張圖片,你應該是使用 <img>
如果你是想嵌入 HTML 網頁,你應該是使用 <iframe>
如果你是想嵌入音源或影片,你應該是使用 <audio><video>