▽20000713c
#日記
Netscape や IE の面白い挙動.
HTML 4.01 Frameset な DOCTYPE の HTML での話. つーてもフツーのブラウザは DOCTYPE なんて見てない. 見てないのにどうやって Framset かそうでないのかを識別するかというと, どうも,「先頭からパースしていって, frame 系のタグが現れる前に画面表示に影響する文字列が現れたら, それは Frameset ではない」という判断をしているようだ.
「画面表示に影響する文字列」とは, フツーの文字列でも <hr> タグでも, とにかく画面に何か書くモノで, 空の <p> とか <blockquote>~</blockquote> とかは影響しないが, 例えば空で突然現れる <li> とかでももうダメ.
で,この場合,その後ろにいくら <frame> とかがあってももうシカトで, <frameset>~</frameset> の中の CDATA とかもフツーに画面表示.
mozilla の開発者達は,Netscape 4 のコードから 5 を作ろうとした時に, あまりにひどいんですっぱり捨てて 6 のコードをゼロから書いたと聞くけど, 確かにこーゆー場当たり的なパースの仕方をしてるのでは, 標準への広範な準拠など不可能だと判断せざるを得んだろうなぁ...