框架和早期的浏览器
框架是在Netscape Navigator 3.0中引入的,早期的浏览器不能识别任何有关框架的标识符,通常这不会造成任何问题。如果一个浏览器不能识别一个标识符或一个属性,它就仅仅忽略它,但是框架却在这一方面有一些特殊的问题。
frameset文件产生了一个与早期浏览器的兼容性问题,因为frameset文件不是一个普通的HTML文件,如果你在这个文件中加入一般的HTML标识符,就会产生不可预料的结果。例如,在Netscape的浏览器中,框架就不会起作用了。
这就产生了一种困境,你想让frameset文件与能识别框架的浏览器和不能识别框架的浏览器都兼容,如果你在frameset文件中只使用有关框架的标识符,这个文件将与早期的浏览器不兼容。另一方面,如果你使用了非框架的HTML标识符,这个文件就不会象一个正确的frameset文件那样工作,因此我们该怎么办呢?
很幸运,有一个特殊的标识符可以解决这个问题,使用<NOFRAMES>你可以建立一个即与支持框架的浏览器兼容也与不支持框架的浏览器兼容的frameset文件。下面的例子说明了怎样使用这个标识符:
<HTML>
<HEAD>
<TITLE> Simple Frames </TITLE>
</HEAD>
<FRAMESET ROWS=“100%” COLS=“50%,50%”>
<FRAME SRC=“mypage1.cfm”>
<FRAME SRC=“mypage2.cfm”>
</FRAMESET>
<NOFRAME>
<BODY BGCOLOR=“green”>
I can only be seen by ancient, pre-frame browsers!
</BODY>
</NOFRAME>
</HTML>
图7.14 支持框架的浏览器将显示框架
当这个frameset文件被支持框架的浏览器解释时,浏览器会忽略包含在<NOFRAMES>标识符之间的任何内容,见图7.14。但是,如果在不支持框架的旧版浏览器上显示时,除了包含在<NOFRAMES>中的内容,浏览器会忽略其余的任何东西(见图7.15)。你可以在<NOFRAMES>中包含任何你需要的HTML标识符。
图7.15 不支持框架的浏览器不会显示框架