[5] HTML の noframes
要素型の要素は、
フレームの代替内容を記述します。
[6] 仕様書:
http://www.w3.org/1999/xhtml
noframes
(frame
(フレーム
) なし (未対応 / 不使用) より)body
−noframes
(HTML 4 フレーム集合DTD)、
%flow;*
(HTML 4 移行用DTD)frameset
の末尾に高々1個
(HTML 4 フレーム集合DTD)、
%block;
な文脈
(HTML 4 移行用DTD)属性名 | 属性値 | 既定値 | 説明 | 出典 |
class | 級 | [HTML4] %coreattr | ||
dir | 書字方向 | [HTML4] %i18n | ||
id | 一意識別子 | [HTML4] %coreattr | ||
lang | 自然言語 | [HTML4] %i18n | ||
xml:lang | 自然言語 | [XHTML1] | ||
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 | |||
style | スタイル情報 | [HTML4] %coreattr | ||
title | 注釈的題 | [HTML4] %coreattr |
frameset
内[19] HTML 4 では、フレーム集合DTD
で frameset
要素の内容モデルが
((FRAMESET|FRAME)+ & NOFRAMES?)
と定義されています。つまり、 noframes
は frameset
の最初か最後に高々1個
noframes
を入れることができます。
[13]
一方で、 HTML 4 仕様書 16.4.1 の記述によれば、
noframes
は frameset
の最後に記述できるようです。
どちらの記述が正しいのでしょうか? 慣習的には、
noframes
は frameset
の最後 (frame
などの後) に書く人が多いようですが。
body
内[1] XHTML m12n では noframes
要素を body
要素中に書くことが出来ません: bubble hour - 2001/12 #3
http://www1.odn.ne.jp/bungaku-shitsu/appendix/diary/d0112-3.html#day24-4
[8] noframes
要素は、フレームに対応していない UA
やフレーム非表示に設定されている UA だけが表示するべき内容を指定します。
フレームに対応している UA は、フレーム非表示時に
noframes
の内容だけを表示しなければなりません。
フレーム未対応 UA は、常に noframes
の内容だけを表示しなければなりません。 HTML 4 16.4.1
[9] Frameset DTD の文書では、 noframes
は文書の frameset
の最後で使って構いません。 HTML 4 16.4.1
[10] 例えば Transitional DTD でフレームの中身の文書でも使って構いません。
著者は noframes
を使ってフレーム集合外やフレーム未対応 UA
で見た時に文書の目的を説明できます。 HTML 4 16.4.1
[11] >>10 例えば
って他にどのような場合があるのだろうか。
それはともかく、 >>10 のような目的だと、フレーム対応 UA
であってもフレームなしで表示している時は表示しないといけないような気がしますが、
どうなのでしょう。
[12] 普通の文書の body
内で使うという用法は HTML 4
で導入されたものなので、 HTML 4 以前の UA
はフレームに対応していても表示してしまうのではないかと思いますが、どうでしょうか。
[2] Mozilla (1.4) は
の内容を frameset
/child::noframes
CDATA
として扱うらしい。
XHTML の場合や body
要素以下にある場合は確認してません。
[4] Emacs/W3 のフレーム非対応モードだと frameset
の中身は、 noframes
も含めて無視してしまうらしいです。
今の版でもそうなのかは知りませんが。。。
[14] w3m はフレームなしモードだと noframes
以外に frame
一覧をリンクとしてレンダリングします。
これは >>8 を厳密に解釈すると誤りになってしまいますけど、
noframes
を書かなかったりフレーム対応ブラウザで〜
しか書かなかったりってのが幅を利かせている状況ですから、
仕様書の規定は不適切で、こう実装するのは当然と言えます。
[3] 一説、 head
タグの中(どこ)に入れないといけない。
[18] 検索円陣 spam: noframes
は近代視覚ブラウザの初期設定ではレンダリングされないことから、
検索円陣spam のためにこの要素が悪用されることがあります。
[17] 別頁の主内容に誘導する例 HTML 4 16.4.1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A frameset document with NOFRAMES</TITLE> </HEAD> <FRAMESET cols="50%, 50%"> <FRAME src="main.html"> <FRAME src="table_of_contents.html"> <NOFRAMES> <P>Here is the <A href="main-noframes.html"> non-frame based version of the document.</A> </NOFRAMES> </FRAMESET> </HTML>
[15] noframes
要素の内容に
このページはフレームを使っています。フレーム対応のブラウザでご覧ください
とだけ書いておくような人 (や著述工具) が多くいますが、
不適切であると考えられています。
[29] Frame Basics, , http://web.archive.org/web/19970613222244/http://www82.netscape.com/assist/net_sites/frame_syntax.html
[30] >>29
noframes
は外側 frameset
の先頭。
内容は本文。
[27] >>26 noframes
は外側 frameset
の中に入れろと言っている。
>>25 例文では noframes
は外側 frameset
の先頭に置かれている。
[28] >>26 例文で noframes
の中身は本文。
>>25 例文で noframes
の中身は html
要素 (フォールバックの文書全体)。
[34] JavaScript Guide, , https://web.archive.org/web/20001207020000/http://home.netscape.com/eng/mozilla/3.0/handbook/javascript/index.html
[35] >>34 はなぜか document.write
で frameset
を書き、
noscript
にフォールバック内容を置いている。
[36] Web Workshop - Frequently Asked Questions About HTML Coding for Internet Explorer, Microsoft Corporation, , https://web.archive.org/web/20001203232800/http://msdn.microsoft.com/workshop/Author/ie3html/HTMLFAQ1.asp
(ie3html とあるが、IE4 より後のもの。 IE3 時代からあったのかは不明。)
[37] >>36 IE3 はフレームを表示できなかった。 noframes
の中に body
を入れるというのが MS の例文。
[20] Parsing: <noframes> before <frameset> (Simon Pieters 著, 版) http://lists.w3.org/Archives/Public/public-html/2008Apr/0168.html (
[21] Web Applications 1.0 r2560 Downplay <noframes> error. (credit: hs) ( ( 版)) http://html5.org/tools/web-apps-tracker?from=2559&to=2560