noframes

noframes

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

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

目次

  1. noframes 要素型 (HTML, XHTML 1)
    1. 内容
    2. 文脈
      1. frameset
      2. body
    3. UA の利用
    4. 実装
    5. 不思議解釈
    6. 他との関係
    7. メモ
  2. 歴史
    1. HTML4
    2. HTML5

noframes 要素型 (HTML, XHTML 1)#

[5] HTMLnoframes 要素型の要素は、 フレーム代替内容を記述します。

[6] 仕様書:

[7]

状態
W3C 勧告
名前空間URI
http://www.w3.org/1999/xhtml
局所名
noframes (frame (フレーム) なし (未対応 / 不使用) より)
開始タグ
必須
終了タグ
必須
内容モデル
bodynoframes (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 では、フレーム集合DTDframeset 要素内容モデル

((FRAMESET|FRAME)+ & NOFRAMES?)

と定義されています。つまり、 noframesframeset の最初か最後に高々1個 noframes を入れることができます。

[13] 一方で、 HTML 4 仕様書 16.4.1 の記述によれば、 noframesframeset の最後に記述できるようです。

厳密には、最後に置いて構いませんと言っているだけで、 その他の場所には何も言及していませんが。

どちらの記述が正しいのでしょうか? 慣習的には、 noframesframeset の最後 (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

UA の利用#

[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 のためにこの要素が悪用されることがあります。

他との関係#

[16] 関係する要素型に noframenoflame があります。

#

[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 要素の内容に このページはフレームを使っています。フレーム対応のブラウザでご覧ください とだけ書いておくような人 (や著述工具) が多くいますが、 不適切であると考えられています。

歴史#

[117] HTML要素概説
要素名
noframes
日付
説明
頃の Netscape Navigator 2.0frameset, frame を実装したが、 それと共に noframes が定義された。 Netscape Communications CorporationHTML 3.0 への追加を提案していたという。
出典
[24] HTML要素概説
要素名
frameset
要素名
frame
要素名
noframes
日付
説明
Lynx 2.7.1 は、 frameset, frame, noframes を実装していた。 フレームへのリンクを表示するとともに、 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.writeframeset を書き、 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 の例文。

HTML4#

[31] Cougar は当初 Netscape 案をそのまま取り込んでいました。 フレーム

[33] HTML要素概説
要素名
noframes
日付
(説明)
HTML4 仕様案は noframes を含むが、従来とは違う用法に改めていた。 従来のフレーム文書のフォールバック内容用法は frameset の弟に body を置くこととした。 そして新たに、 通常文書中にフレーム対応Webブラウザーで表示しない箇所があるとき noframes を使うこととした。 例えばフレーム対応Webブラウザーで別フレームに表示したい目次部分を本文フレーム用文書の body 中に noframes を使って書けるとしていた。
出典

HTML5#

[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

[22] 一誠堂書店 () https://www.isseido-books.co.jp/
</head>
<frameset rows="71,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="head.html" name="head" scrolling="NO" noresize >
<frameset cols="153,*" frameborder="NO" border="0" framespacing="0">
<frame src="navi_top.html" name="navi" scrolling="NO" noresize>
<frame src="main2.html" name="main">
</frameset>
</frameset><noframes></noframes>
<noframes>
<body leftmargin="0" topmargin="0" marginwidth="0">
</body>
</html>
[23] () https://www.isseido-books.co.jp/wordpress/?news=%E4%B8%80%E8%AA%A0%E5%A0%82%E6%9B%B8%E5%BA%97%E3%81%AEshop%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%8C%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F

2017年12月2日

一誠堂書店のSHOPホームページがオープンしました

... ってことは、2017年になって新しくフレームWebサイト作ったのかwwww