object 要素埋め込まれた外部リソースを表す

object 要素は埋め込まれた外部リソースを表します。画像、動画、Flash などのプラグインが必要な外部リソース、他の HTML 文書など、様々な外部リソースを文書に埋め込むことが可能です。また、object 要素は、入れ子になったブラウジング・コンテキスト (Browsing Contexts) としても扱われます。

object 要素の内容は、埋め込まれる外部リソースに与えるパラメータ、および対応していない環境への代替コンテンツを提供します。

さらに詳細な説明を見る

サンプルソースを見る

object 要素の仕様

カテゴリ
コンテンツモデル

0個以上の param 要素に続いて、フロー・コンテンツ、インタラクティブ・コンテンツの両方、もしくは一方

この要素を使用できる文脈

エンベッディッド・コンテンツが期待される場所

この要素で使用できる属性
DOM インタフェース
interface HTMLObjectElement : HTMLElement {
           attribute DOMString data;
           attribute DOMString type;
           attribute boolean typeMustMatch;
           attribute DOMString name;
           attribute DOMString useMap;
  readonly attribute HTMLFormElement? form;
           attribute DOMString width;
           attribute DOMString height;
  readonly attribute Document? contentDocument;
  readonly attribute WindowProxy? contentWindow;

  readonly attribute boolean willValidate;
  readonly attribute ValidityState validity;
  readonly attribute DOMString validationMessage;
  boolean checkValidity();
  void setCustomValidity(DOMString error);

  legacycaller any (any... arguments);
};

詳細説明

object 要素に指定可能な属性は下記の通りです。なお、data 属性か type 属性のいずれかは必須属性となります。

属性 概要
data 属性 object 要素によって埋め込む外部リソースの URI を指定します。
type 属性 object 要素によって埋め込む外部リソースの MIME タイプを指定します。
typemustmatch 属性 typemustmatch 属性は論理属性です。この属性が指定されると、埋め込まれる外部リソースが、type 属性で指定した MIME タイプと一致する場合にのみ埋め込みを許可します。
name 属性 埋め込まれたブラウジング・コンテンツに名前を付与します。この名前はリンクターゲットとして利用することもできます。
usemap 属性 埋め込んだ外部リソースをクライアントサイド クリッカブルマップとして扱う場合、その対象となる map 要素に指定された name 属性値を指定します。
form 属性 文書内の form 要素に与えた id 属性値を指定することで、埋め込まれる外部リソースと該当フォームを関連付けます。
width 属性 埋め込まれる外部リソースの表示サイズのうち、横幅を指定します。
height 属性 埋め込まれる外部リソースの表示サイズのうち、高さを指定します。

data 属性

object 要素に指定した data 属性に URI を指定することで埋め込む外部リソースを指定することができますが、param 要素によって代替することも可能です。

object 要素に type 属性が指定されていない場合、この属性は必須属性です。もちろん、type 属性との併記も可能です。少なくともどちらか一方の属性が指定されている必要があります。

data 属性によって指定された URI が無効な場合、代替コンテンツが表示されます。

type 属性

object 要素によって埋め込む外部リソースの MIME タイプを指定します。

object 要素に data 属性が指定されていない場合、この属性は必須属性です。もちろん、data 属性との併記も可能です。少なくともどちらか一方の属性が指定されている必要があります。

type 属性によって指定された MIME タイプを閲覧者の環境がサポートしていない場合、代替コンテンツが表示されます。

typemustmatch 属性

object 要素によって埋め込まれる外部リソースが、第三者が管理するリソースなど、制作者の管理外にあるリソースの場合、意図しない形式のファイルが埋め込まれる可能性があります。

そのような問題を回避するため、typemustmatch 属性を指定することによって、data 属性、または param 要素によって指定された外部リソースの URI から提供されるファイルの MIME タイプと、type 属性によって指定された MIME タイプが一致しない場合には、埋め込みを行わないようにできます。

例えば、type="image/jpg" を指定した object 要素に typemustmatch 属性を指定することで、外部リソースが JPEG 形式の画像以外の場合、埋め込みが行われません。

object 要素のサンプルソース

<!-- Flash の埋め込みなどによく利用される例
     ただし、classid 属性は HTML5 では廃止されています -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="200">
 <param name="allowScriptAccess" value="sameDomain" />
 <param name="movie" value="sample.swf" />
 <param name="quality" value="autolow" />
 <embed src="sample.swf"
        quality="autolow"
        width="400"
        height="200"
        allowScriptAccess="sameDomain"
        type="application/x-shockwave-flash"
        pluginspage="http://get.adobe.com/jp/flashplayer/" />
 <p>Flash プレーヤーが有効な場合、ここにはサンプル動画が再生されます。</p>
</object>
<!-- 代替コンテンツとして HTML や長いテキストを提供することも可能です -->
<object data="graph.png" width="500" height="500">
 <p>下記の表データを棒グラフにしたものが掲載されています。</p>
 <table>
  <tr>
   <th>時間経過</th>
   <th>アクセス数</th>
  </tr>
  <tr>
   <td>1時間後</td>
   <td>200</td>
  </tr>
  …省略…
 <table>
</object>

W3C HTML5 仕様書

4.8.4 The object element