HTMLObjectElement

object 要素 (HTML)

[4] HTMLobject 要素型は、 HTML 文書に物体 (オブジェクト) を埋込むための一般的な仕組みを提供しています。

本項は歴史的事項を説明しています。本項の内容の一部または全部は、現在の状況とは異なるかもしれません。

(なお本項の内容の一部または全部は、互換性または歴史的連続性のために現在も有効な場合もあります。しかし新たに利用することは避けるべきです。)

目次

  1. 代替
  2. 仕様書
  3. 意味
  4. §
  5. 内容
  6. 出現する文脈
    1. レンダリング
    2. フォーム制御子
    3. 他との関係
      1. HTML 文書の埋込み
  7. HTMLObjectElement インターフェイス
  8. 状態
  9. 処理
    1. fetch した資源の表示
      1. 型の決定
      2. 処理方法の決定
    2. プラグインの表示
    3. フォールバック内容の表示
    4. 伝播
  10. HTMLObjectElement インターフェイス
  11. 安全性
  12. 歴史
    1. HTML3
    2. IE3
    3. HTML4
    4. 要素の内容
    5. XHTML2 と画像の埋め込み
    6. 不思議解釈
    7. <OBJECT> 宣言 (ASP)
    8. ガラケー
    9. OBJECT 要素 (DjVu XML)
    1. メモ

代替#

[225] 専用の要素が追加されプラグインが衰退した現在、 object 要素は徐々に使われなくなっています。

[230] それぞれ専用の要素の方が、用途に特化して使いやすく設計されています。

[226] 動画
video 要素を使うべきです。
[227] 音声
audio 要素を使うべきです。
[228] 画像
img 要素を使うべきです。 SVGsvg 要素で直接埋め込むか、 iframe 要素を使うべきです。
[229] HTML文書の埋め込み (フレーム)
iframe 要素を使うべきです。
Flash
JavaScript を使うべきです。
PDF
iframe 要素を使うべきです。
テキストファイル
iframe 要素を使うべきです。

[264] object 要素を使うこと自体に問題はありませんが、 そのメリットは特にありません。現在となっては相互運用性も代替手段の方が高くなっています。

仕様書#

意味#

[182] object 要素は、 次のいずれかを表現します。

#

[6]

開始タグ
必須
終了タグ
必須
属性
属性名属性値既定値説明状態出典
accesskey非標準
align揃え位置[HTML 4] 非推奨
alt%Text(なし)代替文非標準
archive [%URI *(*s %URI)] [HTML 4]
border境界線非標準
class[HTML4] %coreattr
classid%URI実装識別子[HTML 4]
code非標準
codebase%URI(継承)基底 URI[HTML 4]
codetype%ContentType符号内容型[HTML 4]
content-lengthW3C WDXHTML2
copyright非標準EMOBILE
data%URIデータ URI[HTML 4]
datafldデータ欄非標準
datasrc%URIデータ源非標準
declare(真偽値属性)(偽)宣言のみ[HTML 4]
dir書字方向[HTML4] %i18n
height%Length高さ[HTML 4]
hspace水平余白[HTML 4] 非推奨
id一意識別子[HTML4] %coreattr
lang自然言語[HTML4] %i18n
xml:lang自然言語[XHTML1]
longdesc%URI(なし)説明文書[HTML 4]
mediaoutno非標準EMOBILE
name(なし)名前[HTML 4]
onclick[HTML4] %events
ondblclick[HTML4] %events
onkeydown[HTML4] %events
onkeypress[HTML4] %events
onkeyup[HTML4] %events
onmousedown[HTML4] %events
onmousemove[HTML4] %events
onmouseout[HTML4] %events
onmouseover[HTML4] %events
onmouseup[HTML4] %events
privateno非標準EMOBILE
slide:*
standby%Text読込み中メッセージ[HTML 4]
styleスタイル情報[HTML4] %coreattr
tabindexNUMBER(自動)タブ順[HTML 4]
title注釈的題[HTML4] %coreattr
type%ContentTypeデータ内容型[HTML 4]
usemap(なし)クライアント側画像写像[HTML 4]
viewastext(真偽値属性)()非標準
vjscodebase%URI(なし)非標準Visual J# .NET
vspace垂直余白[HTML 4] 非推奨
width%Length[HTML 4]
xmlnshttp://www.w3.org/1999/xhtml 固定名前空間名W3C 勧告XHTML m12n

内容#

[218] object 要素内容は、 フォールバック内容として使われます。 これは指定された資源がエラーで表示できない時に使われるものです。 著者object 要素を入れ子にすることで、 異なる能力を持つ利用者エージェントにそれぞれ適切な資源を表示させることができます。 >>17

[219] しかしこれは fingerprinting vector です。

[233] 内容としては、フォールバック内容の前に任意の個数の param 要素を置くことができます。これはプラグイン引数として使われます。

embed 要素プラグイン依存の属性に相当します。

[234] 仕様上は明確に禁止されているわけではありませんが、 object 要素プラグイン以外として使われる場合、 param 要素は意味を持ちませんから、 著者は含めるべきではありません。

[242] 更に、各 WebブラウザーFlash (と PDF) 以外のプラグインへの対応を打ち切ったことにより、 param 要素Flash 用のもの以外は意義を失いました。

出現する文脈#

[10] object%inline が使える場所だけでなく、 head 内に入れることもできます。

この場合、 UA は普通 head をレンダリングしないので、 著者はレンダリングされ得るデータを指定しないように注意するべきです。 [HTML 4]

レンダリング#

[12] 仕様書: HTML 4 13.3.1 Rules for rendering objects IW:HTML4:"struct/objects.html#idx-object-3"

[13] UA は、

  1. まず、 object をレンダリングしようと試みなければなりません。
    • 内容をレンダリングするべきではありません。 (ということはしても間違いではないのか。)
    • parammap が子供にいないか確認しないといけません。
  2. 何らかの理由 (しないように設定、資源不足、体系が間違いなど) でレンダリングできないときには内容をレンダリングしようと試みなければなりません。

フォーム制御子#

[45] Web Forms 2.0HTML 4object as form control にまったく言及がないわけですが、 Web Forms 2.0HTML 4 の拡張であって置き換えではないので、 依然 object as form control も使えるのだそうな。

[46] でも既存のフォーム制御子の一覧 IW:WF2:"#existing" にもフォーム制御子の定義 IW:WF2:"#form-control" にも object は言及されていない件。

他との関係#

[8] object 要素は HTML への他の物体 (画像、音声、プログラム、HTML 文書、その他) の埋込みのための汎用の仕組みとして標準化されました。 img, applet, iframe, embed, その他同種の独自拡張の代替として使用できます。

[11] classid によって実装を、 data によってデータを指定することができますが、 両方指定した場合の挙動は未定義です。 可搬性のため、実装への追加データには param を使うべきです。 [HTML 4]

[29] usemap 属性を指定した場合は特別な扱いが規定されています ([HTML 4] IW:HTML4:"struct/objects.html#adef-coords")。 詳しくは usemap (>>17) をみてください。

(名無しさん)

HTML 文書の埋込み#

[25] 文書を参照する際に、単にリンクするだけでなく、 文書中に埋込みたいと思うことがあります。 そのような場合には、 object 要素型か iframe 要素型が使えます。

しかし、 objectiframe には幾つか異なる点があります。 [HTML 4]

iframe

  • 内容模型が異なります。
  • 対象 (フレーム) となることができます。
  • UA選択できます。 (選択すると印刷、 HTML ソース閲覧などの焦点を得ます。)
    • 選ばれた枠は選ばれていない枠と違ってレンダリングできます。 (例えば選択した枠の周りに枠線を描くとかです。)

前2者はともかく、最後の1つは、こんなこと仕様書に書かれちゃうと object を甚だ不便に実装しなければならないことになってしまいます。 どうしてこんなおかしなことを書いてしまったのでしょう? (WinIE 5 では iframe と HTML 文書の object を同じように扱っているように見えます。 WinIE 4 でもおそらくそうでしょう。 仕様書の筆者は何を考えていたのでしょうか。)

[26] 埋込まれた文書は親文書と完全に独立になります。 例えば、基底URI は継承されません。 たまたま表示されているのが窓全体ではなく他の文書の一部であったという程度です。 [HTML 4]

[27] 自分自身を埋込んだ場合の UA の挙動は未定義です [HTML 4] 。 最低でも、無限循環に陥って利用者が手を出せなくなる事態は避けるべきでしょう。

HTMLObjectElement インターフェイス#

[212] object 要素は、プラグイン表現する場合で、 プラグインがスクリプト可能インターフェイスを持つ場合は、 これを晒すべきです >>17

状態#

[215] HTML要素としての状態、閲覧文脈包含子としての状態に加えて、次の object 要素固有の状態を持ちます。

表現するもの
プラグイン入れ子閲覧文脈画像フォールバック内容のいずれかです。
プラグイン実現値
プラグイン実現値化されている場合、その実現値です。

処理#

[18] 次のいずれかが発生した時、DOM操作タスク源タスクタスクキューに追加しなければなりません。キュータスクがある間および実行中には、 節点文書について delay the load event しなければなりません>>17

[80] 祖先媒体要素があるかどうかが変化した時は条件に入っていません。

[77] タスクは、要素について次のようにしなければなりません' >>17

  1. [78]
    ... のいずれかの場合、
    1. [79] フォールバック内容としての処理を行います。
  2. [87] それ以外の場合で、 classid 属性空文字列以外の値を持つ場合、
    1. [186] classid 属性値による処理 (>>187) を行います。
  3. [90] それ以外の場合で、 data 属性空文字列以外の値を持つ場合は、
    1. [184] data 属性値による処理 (>>185) を行います。
  4. [167] それ以外の場合で、 data 属性がなく type 属性がある場合、
    1. [169] type 属性値による処理 (>>168) を行います。
  5. [172] それ以外の場合は、
    1. [173] フォールバック内容としての処理に移ります。

fetch した資源の表示#

[185] data 属性値による処理は、次のようにしなければなりません >>17

  1. [91]
    ... ここで終わってフォールバック内容としての処理に移っても構いません。
  2. [95] data 属性値URLの解決を行います。
  3. [96] 失敗した場合は、
    1. [97] 単純イベントを発火します。
      単純イベント
      イベント型
      error
      対象
      要素
    2. [98] フォールバック内容としての処理に移ります。ここで終わります。
  4. [99] 次のような新しい要求fetch するべきです
    要求
    URL
    得られた絶対URL
    クライアント
    要素節点文書Window環境設定群オブジェクト
    終点
    空文字列
    Originヘッダー省略フラグ
    要素閲覧文脈適用範囲起源を持たなければ、設定する
    credentialsモード
    include
    URL credentials利用フラグ
    設定する
  5. [102] fetch の結果が利用可能なら、 fetch 後の処理に移ります。ここで終わります。
  6. [103] そうでなければ、フォールバック内容としての処理に移ります。ここで終わります。

[100] fetch は、 fetch によって実行されるタスクの完了まで、 節点文書delay the load event しなければなりません >>17

[101] fetchAppCache を使う場合、本 fetch子供閲覧文脈のためのものとはみなしません >>17

[104] (キャッシュされているなど >>17) fetch 結果が直ちに利用可能なら、 そのまま同期的に次の処理が行われます。そうでなければ、 fetch によって実行されるタスクfetch 後の処理が行われます。 利用者エージェントは十分なデータを受信した時点で利用可能になったと判断できます >>17。 その具体的なタイミングは規定されていません。

[105] この処理全体がタスクとして元の操作に対して非同期的に実行されること、 ネットワークが関わる処理であることから、 >>104 の動作タイミングの違いが著者にどこまで観測可能かは謎です。
[183] 非同期的に処理される場合は、利用可能になるまでの間、一時的にフォールバック内容表現する状態となります。

[106] fetch 後の処理は、次のようにしなければなりません >>17

  1. [107] 失敗した (404ネットワークエラーなどの) 場合には、
    1. [108] 単純イベントを発火します。
      単純イベント
      イベント型
      error
      対象
      要素
      1. [109] フォールバック内容としての処理に移ります。ここで終わります。
  2. [110] 型の決定 (>>111) を行います。
  3. [140] 決定した型に基づき処理します (>>139)。

型の決定#

[111] 型の決定は、次のようにしなければなりません >>17

  1. [112]
    ... なら、その型を返して停止します。
  2. [117] typemustmatch 属性があれば、 何も返さず停止します。
  3. [118] 資源Content-Typeメタデータを持ち、 利用者エージェントが本資源に関して Content-Type に厳密に従うよう設定されている場合には、 その型を返して停止します。 (これは文書Webサイトの意図と異なるプラグインを埋め込まれたWebサイトが使おうとしているのですから、 脆弱性をもたらす危険性があります。)
  4. [119]
    ... その型を返して停止します。
  5. [123] 資源Content-Typeメタデータを持つ場合、
    1. [124]
      ... のいずれかの場合には、
      1. [130] type 属性があり、値が application/octet-stream 以外なら、
        1. [129] それがプラグインの対応する型か、 image/ で始まる XML MIME型以外の型なら、 その型を返して停止します。
    2. [136] それ以外の場合には、
      1. [128] Content-Typeメタデータの型を返して停止します。
  6. [131] 資源Content-Typeメタデータを持たない場合、
    1. [132] type 属性があり、値が application/octet-stream 以外なら、 その型を返して停止します。
    2. [133] type 属性がなく、sniffed MIME typeapplication/octet-stream 以外なら、 その型を返して停止します。
  7. [134] (リダイレクト後の) 資源URLURLの構文解析して得られた pathプラグインの対応するパターンであれば、 その型を返して停止します。
  8. [135] 何も返しません。

[138] Content-Typeメタデータにおける引数の扱いは不明瞭です。
[127] image/ の比較はASCII大文字・小文字不区別と思われます。
[137] embed 同様に拡張子が判定に使われますが、 優先度は低いようです。

処理方法の決定#

[139] 型を決定したら、要素を次の通り処理しなければなりません >>17

  1. [141] 型が指定され、それが利用者エージェントの対応する型ではなく、 プラグインが対応する型ではある場合、
    1. [202] fetch 結果によるプラグインの処理 (>>203) に移ります。ここで終わります。
  2. [146] それ以外で、型が XML MIME型の場合や、 image/ で始まらない場合は、
    1. [147] 要素入れ子閲覧文脈null なら、
      1. [148] 要素入れ子閲覧文脈を、閲覧文脈の作成の結果に設定します。
      2. [149] 要素name 属性があれば、
        1. [155] 要素入れ子閲覧文脈閲覧文脈名を、 要素name 属性値に設定します。
    2. [152] 資源URLabout:blank の場合、
      1. [153] タスクタスクキューに追加します。
        タスク
        タスク源
        DOM操作タスク源
        処理
        1. 単純イベントを発火します。
          単純イベント
          イベント型
          load
          対象
          要素
    3. [150] 資源URLabout:blankない場合、
      1. [151] navigate します。
        資源
        資源
        閲覧文脈
        要素入れ子閲覧文脈
        始点閲覧文脈
        要素節点文書閲覧文脈
        置換有効
    4. [154] 要素は、入れ子閲覧文脈表現します。
  3. [156] それ以外で、型が image/ で始まる場合で、 画像無効でない場合は、
    1. [252] 要素入れ子閲覧文脈null 以外なら、
      1. [253] 要素入れ子閲覧文脈について閲覧文脈を捨てる処理を実行します。
      2. [254] 要素入れ子閲覧文脈を、 null に設定します。
    2. [157] image sniffing を行います。
    3. [158] エラーや未対応のためレンダリングできない場合は、
      1. [159] フォールバック内容としての処理に移り、停止します。
    4. [160] それ以外なら、
      1. [161] 要素画像表現します。
  4. [162] それ以外なら、
    1. [255] 要素入れ子閲覧文脈null 以外なら、
      1. [256] 要素入れ子閲覧文脈について閲覧文脈を捨てる処理を実行します。
      2. [257] 要素入れ子閲覧文脈を、 null に設定します。
    2. [163] フォールバック内容としての処理に移り、停止します。
  5. [164] 要素内容は、要素表現するものの一部ではありません。
  6. [165] 資源完全に読み込んだら、タスクタスクキューに追加します。
    タスク
    タスク源
    DOM操作タスク源
    処理
    1. [166] 単純イベントを発火します。
      単純イベント
      イベント型
      load
      対象
      要素

[201] 入れ子閲覧文脈表現する場合には、

... は、 delay the load event しなければなりません >>17

[223] 同じ起源かどうかの検査は行われないようです。

[214] 資源完全に読み込むとは、文書completely loaded フラグが設定されることを言うと思われます。

プラグインの表示#

[187] classid 属性値による処理は、 次のようにしなければなりません >>17

  1. [88]
    ... には、
    1. [189] そのプラグインを使うべきですdata 属性があれば、値をプラグインに引き渡すべきです
    2. [190] プラグインがエラーを報告した場合、
      1. [193] フォールバック内容としての処理に移ります。
  2. [89] それ以外の場合には、
    1. [191] フォールバック内容としての処理に移ります。

[192] load イベント発火されないようです。
[199] プラグインdata 属性URLfetch するかもしれませんが、 Webブラウザー自体は行いません。

[168] type 属性値による処理は、 次のようにしなければなりません >>17

  1. [188]
    ... には、
    1. [174] そのプラグインを使うべきです
    2. [175] プラグインがエラーを報告した場合、
      1. [176] フォールバック内容としての処理に移ります。ここで終わります。
    3. [177] プラグインの読み込みが完了したら、 タスクタスクキューに追加します。
      タスク
      タスク源
      DOM操作タスク源
      処理
      1. [178] 単純イベントを発火します。
        単純イベント
        イベント型
        load
        対象
        要素
  2. [172] それ以外の場合は、
    1. [173] フォールバック内容としての処理に移ります。

[200] data 属性が指定されている時には本処理は呼び出されません。

[203] fetch 結果によるプラグインの処理は、次のようにしなければなりません >>17

  1. [246] 要素入れ子閲覧文脈null 以外なら、
    1. [250] 要素入れ子閲覧文脈について閲覧文脈を捨てる処理を実行します。
    2. [251] 要素入れ子閲覧文脈を、 null に設定します。
  2. [204] プラグインの砂箱化を行わないか、保安プラグイン化できる場合には、
    1. [145] 型に対応したプラグインを使うべきです資源をそのプラグインに引き渡すべきです
    2. [197] プラグインがエラーを報告したら、
      1. [198] フォールバック内容としての処理に移ります。ここで終わります。
  3. [205] それ以外の場合には、
    1. [143] フォールバック内容としての処理に移ります。ここで終わります。
  4. [142] 要素内容は、要素表現するものの一部ではありません。
  5. [144] 資源が完全に読み込まれたら、タスクタスクキューに追加します。
    タスク
    タスク源
    DOM操作タスク源
    処理
    1. [206] 単純イベントを発火します。
      単純イベント
      イベント型
      load
      対象
      要素

[207] プラグイン実現値化の際には、次の名前と値の組のリストプラグインに渡すべきです >>17

  1. [208] 属性の名前と値。追加順/ソース順。
  2. [209] 名前 PARAM, 値 null
  3. [210] 子要素 param による引数の名前と値。木順

[213] embed 要素ではnull名前空間属性に限定されていますが、 こちらではなぜか限定されていません。

[211] 要素は、プラグイン表現します >>17

[216] プラグインの砂箱化を行う場合で保安プラグイン化できない場合に、 embed 要素では利用者がそれでも実現値化することを選択できるとされていますが、 object 要素ではそのような規定がありません。

フォールバック内容の表示#

[179] フォールバック内容として処理する場合、要素object 要素子供表現します。 ただし先頭の param 要素は (あれば) 無視します。 >>17

[180] その場合、実現値化されたプラグインがあれば、 unload しなければなりません >>17

[181] 入れ子閲覧文脈は破棄しないようです。

伝播#

[196] 次の処理は、 object 要素フォールバック内容表現するかどうかに影響されます。 object 要素表現するものが変化した場合は、 次の処理も行う必要があります。

HTMLObjectElement インターフェイス#

[243] object 要素要素インターフェイスは、 HTMLObjectElement インターフェイスです。

[244] HTMLObjectElement インターフェイスには、 次のメンバーがあります。

安全性#

[34] img 要素型の安全性の項もご覧下さい。

[36] スラッシュドット ジャパン | IEのobjectタグにクラッシュや任意コード実行可能な脆弱性 http://slashdot.jp/security/05/07/01/2355213.shtml?topic=41 (名無しさん 2005-07-07 14:21:21 +00:00)

歴史#

HTML3#

HTML 2.1E

IE3#

[282] OBJECT Element | OBJECT Object, InetSDK, , https://web.archive.org/web/20001025122337/http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/OBJECT.asp

[286] Tips and Tricks, InetSDK, , https://web.archive.org/web/20001019164042/http://msdn.microsoft.com/workshop/author/dhtml/reference/tips/tips.asp#Using_Objects

[287] HTML要素概説
要素名
object
日付
説明
頃、 Internet Explorer 3.0object を実装した。 ActiveXコントロールを埋め込むことができた。 これ以後、 Internet Explorer 用の objectNetscape Navigator 用の embed を組み合わせてプラグインを利用する方法が一般的となって広く使われた。
参照
img
参照
applet
参照
embed
参照
iframe

HTML4#

[235] HTML4 では、任意のオブジェクトの埋め込みの方法として object 要素が定義されていました。

[236] どんなものにも使えることになっていましたが、規定されていたのはそれだけで、 詳細は実装に委ねられていました。汎用性が高いといえば聞こえはいいですが、 標準化を放棄したというのが正確なところでした。

[237] HTML4 の開発初期には img 要素廃止または非推奨として object 要素に統合することが検討されていたそうです。 過激な著者の中にはそれに従って img 要素object 要素に置き換えている人もいましたが、 当時はそれを正しく表示させられるWebブラウザーなどありませんでした。

[238] object 要素は、 HTML4 の規定はともかく、 実際上は IEActiveX control を表示するための要素としてしか使えませんでした。

[5] 仕様書:

[9] 多くの WWWブラウザは自前で HTML や画像などを解釈することができますし、 そうでない形式では他のプログラムを起動して処理させるなどすることができます。 object を使うと外部のプログラムを起動するか著者の指定したプログラムを使うか、 といったようなことを記述できます。 [HTML 4]

ほとんどの場合著者は次の3種類の情報を指定する必要があります。 常に3種類とも必要ではなく、場合によっていろいろです。 [HTML 4]

  • 取込む物体の実装。例えば、時計アプレットであればアプレットの実行可能符号の場所。
  • レンダリングするデータ。例えば、フォント・データをレンダリングするプログラムなら、 フォント・データの場所。
  • 実行時の追加の引数。例えば、アプレットの初期値。

前2者は属性、引数は子 param 要素を使います。

[280] Plug-in Basics, Sharon Williams, , https://web.archive.org/web/20001217121500/http://developer.netscape.com/docs/manuals/communicator/plugin/pg1bas.htm

[281] HTML Tag Reference, , http://web.archive.org/web/20010608083811/http://developer.netscape.com/docs/manuals/htmlguid/tags14.htm#tags%3AOBJECT

[272] XFA-Template, https://www.w3.org/1999/05/XFA/xfa-template-19990614#element-spec-exobject

[279] CEA-2014-B

要素の内容#

[7] object 要素の内容は HTML 4 DTD では (param | %flow;)* とされていますが、仕様書本文の規定により param は他の内容よりも前に来なければなりません。 こうしているのは SGML DTD で直接表現することが困難だからです。

仕様書の記述を超厳密に解釈するなら、どんな内容param の前に来れないのですから、 空白注釈宣言なども来てはいけないことになってしまいますが、 それではわざわざ DTD で不正確に表現している意味がありませんから、 他の要素や非空白文字を制限していると解釈するのが妥当でしょう。

[14] head 内の object では内容を含めるべきではありません。 [HTML 4]

べきだから禁止じゃないのか・・・。 param も入れないべきなのでしょうかねぇ。

[15] 内容には object をレンダリングできないときの代替文を入れるべきです。 [HTML 4]

[31] HTML 4 DTD の注釈 (参考) には PARAM elements should precede other content. SGML mixed content model technicality precludes specifying this formally ... (param は他の内容の前に来るべきです。 SGML の混合内容模型ではこれを形式的に記述できません。。。) と書かれています。 (名無しさん [sage])

[39] なぜ行内要素のobjectの内容が%flow;なのか

どうしてHTML 4行内要素であるobject内容としてブロック水準要素が認められているのでしょうか?

仕様書案をたどってみると、最初のまだ要素型名insertであった頃から、内容モデルは実質的に変わっていないことがわかります。 HTMLは歴史的にブロック水準要素なしに行内要素文字データが現れることを許容してきましたから、 はじめのうちは不自然なことではありませんでした。

しかし、HTML 4案の途中から移行用DTD厳密DTDの区別が導入されて、厳密DTDではbody要素子供として行内要素を置くことができなくなりました。 object行内要素に分類されたので、 body要素子供にはなれず、 ブロック水準要素を介した以下としなければならなくなりました。ところが、 (blockquoteとは違って) object内容モデルは変更されませんでした。

ちなみに、HTML 2.0では%HTML.Recommended;な時でもbody要素子供になり得る要素型imgも含まれていました。

[217] 歴史的変遷: http://suika.suikawiki.org/www/2004/html/classes

[283] XML in HTML Meeting Report, , https://www.w3.org/TR/NOTE-xh#script-hack

[284] Binding the XML Data Source Object to Data, Microsoft Corporation, , https://web.archive.org/web/20001027130748/http://msdn.microsoft.com/xml/XMLGuide/xmldso.asp

[285] >>284 IE5 では object 内に任意の XML を書く場合があった。

[289] HTML要素概説
要素名
*
日付
説明
Internet Explorer 5 では object内容に任意の XML が書ける (ことがある?) とされた。 >>290
出典
注釈
  • [290] 本書ではそのような形の XML要素は採録対象外とした。

XHTML2 と画像の埋め込み#

[63] 遅れてきた春、 XHTML2 の最初の作業原案では object 要素画像の埋め込みに使える唯一の要素でした。

[64] しかしそれもつかの間、すべての要素src 属性が追加され、更になぜか img 要素まで復活しました。

不思議解釈#

[1] object hack

[2] (・▽・)えすともほめぱげ(・▽・)(2004-02-10) http://plum.sakura.ne.jp/~s-tomo/tdiary/?date=20040210#p01: 一見標準の皮をかぶった object 要素。だけどそれは腐った WinIE 対策で、 本命はその中の embed 要素が本命・・・という話。 (そんなときは W3C の XHTML 1.0 Transitional + embed DTD を使おう! embed 参照。)

[40] RDF/XMLHTMLに埋め込むためにobjectを使えばよいとの意見もありますが、 object hack同様に濫用であって望ましくないです。

<OBJECT> 宣言 (ASP)#

[50] Global.asa ?????? (2007-02-18 11:36:39 +09:00 版) http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpiis/iishelp/iis/htm/asp/glob822b.asp

[38] >>50 より:

<OBJECT> 宣言

拡張 <OBJECT> タグを使用して、セッション スコープまたはアプリケーション スコープを持つオブジェクトを Global.asa ファイルに作成できます。このタグは独立していて、すべての <SCRIPT> タグの外側にあります。

Global.asa ファイルで宣言されたオブジェクトは、そのオブジェクトを呼び出すスクリプトをサーバーが処理するまで作成されません。必要なオブジェクトだけしか作成されないため、リソースの節約になります。

構文

<OBJECT RUNAT=Server SCOPE=Scope ID=Identifier {PROGID="progID"|CLASSID="ClassID"}>
. . .
</OBJECT>

パラメータ

Scope
オブジェクトのスコープを指定します。Global.asa ファイルで、Scope は「Session」または「Application」に設定されます。
Identifier
オブジェクト インスタンスの名前を指定します。
progID
クラス識別子に関連付けられた識別子です。<OBJECT> タグには ProgID または ClassID を指定する必要があります。ProgID の形式は [Vendor.]Component[.Version] です。
ClassID
COM クラス オブジェクトに対して一意の識別子を指定します。<OBJECT> タグには ProgID または ClassID を指定する必要があります。

以下の例のうち、最初の例では ProgID パラメータを使用して、セッション スコープの MyConnection というオブジェクトを作成します。2 番目の例では、ClassID を使用します。

<OBJECT RUNAT=Server SCOPE=Session ID=MyConnection
PROGID="ADODB.Connection">
REM Object Script
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Session ID=MyConnection
CLASSID="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
REM Object Script
</OBJECT>

解説

Global.asa で宣言されたオブジェクトは、アプリケーションの任意のスクリプトで使用できます。たとえば、次のオブジェクトを宣言したとします。

---GLOBAL.ASA---
<OBJECT RUNAT=Server SCOPE=Session ID=MyAd PROGID="MSWC.AdRotator">
</OBJECT>

この場合、MyAd オブジェクトはアプリケーションの任意のページから参照できます。

---SOME.ASP---
<%= MyAd.GetAdvertisement("/ads/adrot.txt") %>

ガラケー#

[239] ガラケーでは、動画音声Javaアプレット、 その他ガラケー特有の機能を Webページに埋め込むための方法として object 要素を使っていました。

[240] デスクトップブラウザーが実装しなかった declare 属性を使った機能もありました。

[241] こうした利用方法は HTML4 の理論上の仕様とは一応整合するものでしたが、 IEActiveX control としての利用や他のWebブラウザーNPAPI プラグインの利用とは互換性のない、完全に独自の利用方法でした。 埋め込まれているデータ形式も、ガラケー向けの独特の形式やプロファイルでした。 ですから、デスクトップブラウザーとの互換性はまったくありませんでした。

OBJECT 要素 (DjVu XML)#

[273] DjVu XML には HTMLobject 要素から派生した OBJECT 要素がありました。

#

[16] 時計アプレットの例

<P><OBJECT classid="http://www.miamachina.it/analogclock.py">
An animated clock.
</OBJECT>

(HTML 4 仕様書より)

レンダリングできないときには代替文 An animated clock. がレンダリングされます。

この場合 UA が解釈したらすぐに時計がレンダリングされますが、 先に宣言だけしておいてレンダリングを遅延させることができます。 [HTML 4]

[17] 色々な形式の例

<P>                 <!-- 最初に Python アプレットを試す -->
<OBJECT title="宇宙から見た地球" 
        classid="http://www.observer.mars.example/TheEarth.py">
                    <!-- 駄目なら MPEG 動画を試す -->
  <OBJECT data="TheEarth.mpeg" type="application/mpeg">
                    <!-- 駄目なら PNG 静止画像を試す -->
    <OBJECT data="TheEarth.png" type="image/png">
                    <!-- 駄目なら文字列を表示 -->
      宇宙から見た<STRONG>地球</STRONG>。
    </OBJECT>
  </OBJECT>
</OBJECT>

(HTML 4 仕様書より、改)

[33] SVG 画像の埋込みで、未対応なら代わりに PNG 画像を使う例

<p><a name="figure41">
<object data="figures/fig41.svg" type="image/svg+xml" height="290" width="640">
   <img src="png-figures/fig41.png" alt="Figure 4.1: Relationships between
source, reference, PNG, and display images" height="280" width="640">
</object>
</a></p>

出典: Portable Network Graphics (PNG) Specification (Second Edition) http://www.w3.org/TR/2003/REC-PNG-20031110/#figure41

[28] HTML 文書を埋込む例

...text before...
<OBJECT data="embed_me.html" type="text/html">
It is described in
<A href="embed_me.html" type="text/html">another document</A>.
</OBJECT>
...text after...

(HTML 4 仕様書より、改)

[51] ObjectTestResults - ESW Wiki (2007-03-10 12:09:38 +09:00 版) http://esw.w3.org/topic/ObjectTestResults (名無しさん)

[55] Object Tests - The Web Standards Project (2007-03-21 13:55:52 +09:00 版) http://www.webstandards.org/learn/articles/askw3c/may2005/object-tests/ (名無しさん)

メモ#

[30] Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3 でありますが、 XSLT 結果木object で他の HTML 文書を埋込むと、埋込んだ文書がなぜか強制的に UTF-8 とみなされてしまいます。 (Content-Typecharset を指定しているのに無視されます。) フレーム内の文字コードを強制指定する手段がないので文字化けを回避できません。 (埋込む文書も UTF-8 にするしかないと思われ。) (名無しさん 2005-01-31 22:58:02 +00:00)

[35]

[41] OASIS CGM Open specification - WebCGM 2.0 - WebCGM Intelligent Content http://www.w3.org/Submission/2006/SUBM-WebCGM20-20060313/WebCGM20-IC.html#webcgm_3_4 (名無しさん [sage])

[42] OASIS CGM Open specification - WebCGM 2.0 - WebCGM Intelligent Content http://www.w3.org/Submission/2006/SUBM-WebCGM20-20060313/WebCGM20-IC.html#webcgm_3_4 (名無しさん [sage])

[43] A List Apart: Articles: Bye Bye Embed http://www.alistapart.com/articles/byebyeembed (名無しさん 2006-07-15 11:35:43 +00:00)

[44] Bug 335567 - Alternate Content To OBJECT should not participate in HTTP POST https://bugzilla.mozilla.org/show_bug.cgi?id=335567 (名無しさん 2006-08-16 15:04:16 +00:00)

[47] WebCGM 2.0 - WebCGM Intelligent Content (2007-01-25 02:12:49 +09:00 版) http://www.w3.org/TR/2007/REC-webcgm20-20070130/WebCGM20-IC.html#webcgm_3_4 (名無しさん 2007-02-02 14:26:18 +00:00)

[48] WebCGM 2.0 - WebCGM Intelligent Content (2006-11-04 01:53:46 +09:00 版) http://docs.oasis-open.org/webcgm/v2.0/OS/WebCGM20-IC.html#webcgm_3_4 (名無しさん)

[49] XHTML Quicktime Object (2004-07-26 22:28:44 +09:00 版) http://realdev1.realise.com/rossa/rendertest/quicktime.html (名無しさん 2007-02-14 10:12:18 +00:00)

[52] Chapter 2 (1998-05-20 00:22:16 +09:00 版) http://www.w3.org/People/Raggett/book4/ch02.html (名無しさん)

[53] Adding Multimedia in Web Documents (part 1) - The Web Standards Project (2007-03-21 13:51:58 +09:00 版) http://www.webstandards.org/learn/articles/askw3c/jun2004/ (名無しさん)

[54] Adding Multimedia in Web Documents (part 2) - The Web Standards Project (2007-03-21 13:55:31 +09:00 版) http://www.webstandards.org/learn/articles/askw3c/may2005/ (名無しさん)

[56] A Sample Chapter From HTML 4.01 Programmer's Reference by Wrox Publication (2007-03-21 13:59:06 +09:00 版) http://www.devasp.com/samplechapters/html401/chapter10.asp (名無しさん)

[57] A Sample Chapter From HTML 4.01 Programmer's Reference by Wrox Publication (2007-03-21 14:05:19 +09:00 版) http://www.devasp.com/samplechapters/html401/Chapter10_2.asp (名無しさん)

[58] A Sample Chapter From HTML 4.01 Programmer's Reference by Wrox Publication (2007-03-21 14:07:53 +09:00 版) http://www.devasp.com/samplechapters/html401/Chapter10_3.asp (名無しさん)

[59] A Sample Chapter From HTML 4.01 Programmer's Reference by Wrox Publication (2007-03-21 14:11:03 +09:00 版) http://www.devasp.com/samplechapters/html401/Chapter10_4.asp (名無しさん)

[60] Re: Eolas vs. <object> (Karl Dubost 著, 2007-04-18 08:28:14 +09:00 版) http://lists.w3.org/Archives/Public/public-html/2007Apr/1086.html (名無しさん)

[62] Re: <object> content-type sniffing (detailed review of Semantics) (Ian Hickson 著, 版) http://lists.w3.org/Archives/Public/public-html/2008Jul/0326.html

[65] [whatwg] <object> behavior ( 版) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/022563.html

[66] IRC logs: freenode / #whatwg / 20100208 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20100208#l-243

[67] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4984&to=4985

[68] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4989&to=4990

[69] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4990&to=4991

[70] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4783&to=4784

[71] Web Applications 1.0 r6915 Define the legacycaller behaviour of <embed> and <object>. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=6914&to=6915

[72] Web Applications 1.0 r7269 typo (also, since I went and looked up this decision to see if it made any sense -- it doesn't -- I had the URL handy, so I included it) ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7268&to=7269

[73] Working Group Decision on ISSUE-158: object-content-model ( (Sam Ruby 著, 版)) http://lists.w3.org/Archives/Public/public-html/2012Jul/0250.html

[74] Web Applications 1.0 r8377 Clean up how <object> fires load events. (This is not complete. See bug 24214 for more that needs doing here.) ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8376&to=8377

[75] <object> attributes (Was: Versioning and html[5]) ( (Ian Hickson 著, 版)) http://lists.w3.org/Archives/Public/public-html/2007Apr/0632.html

[224] Integrate Fetch into HTML · whatwg/html@7c5555a ( 版) https://github.com/whatwg/html/commit/7c5555a16f2920c02244c10756bb2f1a11e87a22

[231] URLs are parsed and produce records · whatwg/html@30bc255 ( 版) https://github.com/whatwg/html/commit/30bc2557105ad62881ec9670f253febbc9761b44

[232] Apply tag attributes in Adobe Flash Professional ( 版) https://helpx.adobe.com/flash/kb/flash-object-embed-tag-attributes.html

[245] Acceptヘッダで判別するサーバーサイドのSVGフォールバック - 聴く耳を持たない(片方しか) ( 版) http://d.hatena.ne.jp/rikuo/20151017

object要素 text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Chromeでは、object要素のtype属性によってAcceptヘッダは変わりますが、ここではimage/svg+xmlを指定した際の値を記載。

[247] Align Fetch's destination concept with changes in Fetch (sideshowbarker著, ) https://github.com/whatwg/html/commit/5e8f96a85d182d36c177db0d6fdde58b4ded86d4

[248] マルチメディアファイルを XHTML 文書に埋め込む @ ぽかぽかWeb研究室 () http://yupotan.sppd.ne.jp/web/xhtml-multimedia.html

[249] Be more precise about nested and discarded browsing contexts (domenic著, ) https://github.com/whatwg/html/commit/39118df640ad4a3f03f164fb5ffe0a56316297be

[258] Upstream the 'plugin-types' hooks from CSP3 (mikewest著, ) https://github.com/whatwg/html/commit/5bafd7ed8955f27bb1ce7e68ceb22878c79a4c62

[261] Drop the name propagation for the object element's name attribute (foolip著, ) https://github.com/whatwg/html/commit/1d196b35eba203d5f7561c6b2458b990ff0e28fb

[262] How to: Add Silverlight to a Web Page by Using HTML () https://msdn.microsoft.com/en-us/library/cc189089(v=vs.95).aspx

<object width="300" height="300"

data="data:application/x-silverlight-2,"

type="application/x-silverlight-2" >

<param name="source" value="SilverlightApplication1.xap"/>

</object>

[263] Remove legacycaller from <object> and <embed> (zcorpan著, ) https://github.com/whatwg/html/commit/aaf2435a8cbaf7fa4e791bf86874854bb1b618af

[265] Remove <applet> (zcorpan著, ) https://github.com/whatwg/html/commit/b9b9d60f9451c05f8e8d542e4094f987ae1a5fb8

[266] `<object>` without "data" attribute probably needs to consider params to figure out its URL · Issue #387 · whatwg/html () https://github.com/whatwg/html/issues/387

[267] Further tabIndex getter tweaks (domenic著, ) https://github.com/whatwg/html/commit/7ce0b474147ac0574eb3e739f1a9c27e49a249ad

[268] Further tabIndex getter tweaks by domenic · Pull Request #4759 · whatwg/html · GitHub () https://github.com/whatwg/html/pull/4759

[269] コンテンツの配信と再生 | サービス・機能 | NTTドコモ () https://www.nttdocomo.co.jp/service/developer/make/content/flash/usage/index.html

[270] 再生制限 | サービス・機能 | NTTドコモ () https://www.nttdocomo.co.jp/service/developer/make/content/imotion/mp4/feature/contents_protection/play_restriction/index.html

[271] コンテンツ配信 | サービス・機能 | NTTドコモ () https://www.nttdocomo.co.jp/service/developer/make/content/imotion/mp4/distribution/index.html

[274] Editorial: nested browsing context is a member, not a type (annevk, , ) https://github.com/whatwg/html/commit/6b737bbc428facf34ec3728c0912cf9e172d0ea4