A frame document has no <body>. In fact, it must not, since the browser will ignore any frame tags if it finds any <body> content before it encounters the first <frameset> tag. A frame document, therefore, is all but invisible to any non-frame capable browser. The <noframes> tag gives some relief to the frame-disabled.
Use the <noframes> tag only within the outermost <frameset> tag of a frame document. The content inside the <noframes> tag and its required end tag (</noframes>) is not displayed by any frame-capable browser, but is displayed in lieu of other contents in the frame document by browsers that do not handle frames. The contents of the <noframes> tag can be any normal HTML body content, including the <body> tag itself.
Although this tag is optional, experienced HTML authors typically include the <noframes> tag in their frame documents with content that warns a frame-incompatible browser user that they're missing the show. And smart authors will give those users a way out, if not direct access to the individual documents that make up the frame document contents. Remember our first frame example in this chapter? Figure 12.5 shows what happens when that frame document gets loaded into an old version of Mosaic.
<noframes> Sorry, this document can be viewed only with Netscape Navigator version 1.2 or later. <a href="frame1.html">Take this link</a> to the first HTML document in the set. </noframes>
The reason <noframes> works is that most browsers are extremely tolerant of erroneous tags and incorrect documents. A nonframe browser simply ignores the frame tags. What's left, then, is the content of the <noframes> tag, which the browser dutifully displays.
If your browser strictly enforces some version of HTML that does not support frames, it may simply display an error message and refuse to display the document, even if it contains a <noframes> tag.