* iframe 要素型 (HTML, XHTML 1)
[7] [[HTML]] の [DFN[[CODE(HTMLe)[iframe]] 要素型]]の要素は、
文章中に[[フレーム]]を挿入します。
[8] 仕様書:
- [[HTML 4]]
-- 16.5 Inline frames: the [CODE(HTMLe)[IFRAME]] element
[9]
:[[開始タグ]]:必須
:[[終了タグ]]:必須
:出現できる文脈:[CODE(SGML)[%[[inline]]]] な文脈
:[[内容模型]]:[CODE(SGML)[(%[[flow]])*]]
:[[属性]]:
,属性名,属性値,既定値,出典
,[CODE(HTMLa)[[[align]]]],[CODE(SGML)[%[[IAlign]]]],,配置,[HTML 4] 非推奨
,[CODE(HTMLa)[[[class]]]],,(なし),級,[HTML 4] [CODE(SGML)[%[[coreattrs]]]]
,[CODE(HTMLa)[[[frameborder]]]],,[CODE(HTML)[1]],枠線,[HTML 4]
,[CODE(HTMLa)[[[height]]]],[CODE(SGML)[%[[Length]]]],,フレームの高さ,[HTML 4]
,[CODE(HTMLa)[[[id]]]],[CODE(SGML)[[[ID]]]],(なし),固有識別子,[HTML 4] [CODE(SGML)[%coreattrs]]
,[CODE(HTMLa)[[[longdesc]]]],[CODE(SGML)[%[[URI]]]],(なし),長い説明へのリンク,[HTML 4]
,[CODE(HTMLa)[[[marginheight]]]],[CODE(SGML)[%[[Pixels]]]],,余白高さ,[HTML 4]
,[CODE(HTMLa)[[[marginwidth]]]],[CODE(SGML)[%[[Pixels]]]],,余白幅,[HTML 4]
,[CODE(HTMLa)[[[name]]]],,(なし),フレーム名,[HTML 4]
,[CODE(HTMLa)[[[scrolling]]]],,[CODE(HTML)[auto]],Scroll bar,[HTML 4]
,[CODE(HTMLa)[[[src]]]],[CODE(SGML)[%[[URI]]]],(なし),フレーム内容,[HTML 4]
,[CODE(HTMLa)[[[style]]]],,(なし),スタイル指定,[HTML 4] [CODE(SGML)[%coreattrs]]
,[CODE(HTMLa)[[[title]]]],[CODE(SGML)[%[[Text]]]],(なし),注釈的題,[HTML 4] [CODE(SGML)[%coreattrs]]
,[CODE(HTMLa)[[[width]]]],[CODE(SGML)[%[[Length]]]],,フレームの幅,[HTML 4]
[[#comment]]
** 内容
[11] [CODE(HTMLe)[iframe]] 要素の内容は、未対応 UA
や不使用設定の UA だけが表示するべきです [SRC[HTML 4 16.5]]。
[[#comment]]
** UA による利用
[13] 行内フレームは大きさを変更できません。ですから [CODE(HTMLa)[[[noresize]]]]
属性はありません。 [SRC[HTML 4 16.5]]
[14] HTML 4 は >>13 としていますが、利用者の便を考えれば、
UA は寸法変更機能を設けた方が良いかもしれません。
[[#comment]]
** 実装
[3] そういえば昔、 [[WinIE 5]] の頃、 [CODE(HTMLe)[iframe]] 内に表示されている文書の [CODE(HTMLe)[[[title]]]] が
[[window]] の [[title bar]] に表示されるというバグ
[WEAK[([[M$]] は[[仕様]]だと言い張るかもしれんが。)]] がありましたね。
そのバグ、今でもあるのかなあ?
[[#comment]]
** 他との関係
[12] [CODE(HTMLe)[[[object]]]] 要素型を使っても HTML
文書などを埋込むことができます。属性などは異なりますが、
レンダリングなどに関してはおおむねどちらを使っても同じです。
また、多くの UA では基本的に利用者から見て同じようになります。
[[#comment]]
** 安全性
[15] [[フレーム]]一般と同じく、外部文書を埋込み、 [[DOM]]
などで相互に操作できることによって生じ得る保安上の問題に注意が必要です。
多くの UA では、異なるドメインでのスクリプトによる access
を禁止するなどの措置をとっています。
(現状では十分ではないという指摘もありますし、
あまり制限しすぎると自由度が失われるという問題もあります。)
[1] 異なる[[ドメイン]]の参照は (大抵)
[[広告]]とかだし、ブラウザの設定で出来ないようにして欲しいなあ。
[2] >>1 それを言うなら [CODE(HTMLe)[iframe]] 自体こうこっく(以下略)
[[#comment]]
** 不思議解釈
[16] [Q[iframe]] は [Q[inline frame]] の略のようですから、
[Q[インライン・フレーム]]と読むのが適当でしょう。
省略形は省略形のまま読む派 (謎) なら [Q[アイ・フレーム]]
も許容範囲でしょう。
中には[Q[イフレーム]]と読む人もいます。違和感ありまくりですが、
[Q[アイ・フレーム]]が良くて[Q[イフレーム]]は悪いとする理由はなさそうですから、
まあ良いでしょう。
ところが、世間には[Q[イン・フレーム]]と読む人もいます。
確かに [Q[inline frame]] の省略としてあり得るものではありますが、
単なる[Q[イン]]と[Q[インライン]]では意味が随分違ってきます。
[Q[イン・フレーム]]と読むと[Q[フレームの中]]ととられても仕方がありません。
あるいは、頁の''中のフレーム''という意味と誤解していることからそう呼ぶのかもしれませんが、
もしそうだとしたら呆れるばかりです。
[[#comment]]
** 例
[10] 単純な埋め込み例 [SRC[HTML 4 16.5]]
[PRE(HTML)[
]PRE]
この例では、対応している UA は文章中に [SAMP(URI)[foo.html]]
を枠線付きで埋込みます。未対応 UA
は [CODE(HTMLe)[iframe]] の内容をレンダリングします。
[[#comment]]
** メモ
[4] まじれすすると、 [CODE(HTMLe)[iframe]] 要素型は[[非推奨]]なので [CODE(HTMLe)[[[object]]]] 要素型を使いましょう。
[5] >>4 または [[XHTML 2]] で [CODE(XHTMLa)[[[src]]]]
[[汎用属性]]という手もある。
[6] しかし[[イフレーム]]はないだろう・・・。
[[#comment]]
* メモ