Re: [Dillo-dev] Question about frames (have them working, but...)
On Tue, Aug 05, 2003 at 02:44:08PM +0300, madis wrote:
On Tue, 5 Aug 2003, Frank de Lange wrote:
http://www.geocities.com/ikbenfrank/dillo-20030804-tabs.patch.gz
dillo with this patch shows only noframes part on some framed sites:
That is caused by the extra <body> tag these sites add (lamlaw has a complete body section - something a frame document should not have, http://www.hot.ee/klubipegasus/ has an extra body tag in the noframes section.) The specs say something like this: Use the <frameset> tag in lieu of a <body> tag in the frame document. You may not include any other content except valid <head> and <frameset> content in a frame document. Combining frames with a conventional document containing <body> may result in unpredictable browser behavior. So, again (this is to the list), should Dillo follow the specs - and thus produce unwanted results - or try to work around the cruft some sites serve? Fixing this would be relatively easy, and the fix can be optional (--enable-pedantic or --enable-quirks or whatever...) By the way, some sites check the browser string to decide what type of content to send, these may also send non-frames content. Same goes for sites which use Javascript to test for browser versions. So even if Dillo has full frame support one day, it can still happen that a site does not serve it (functional) frame documents... Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
At 05:25 AM 8/5/2003, Frank de Lange wrote:
The specs say something like this:
Use the <frameset> tag in lieu of a <body> tag in the frame document. You may not include any other content except valid <head> and <frameset> content in a frame document. Combining frames with a conventional document containing <body> may result in unpredictable browser behavior.
So, again (this is to the list), should Dillo follow the specs - and thus produce unwanted results - or try to work around the cruft some sites serve?
Actually, my understanding is that, in frameset documents, it's recommended or at least allowed to put the <body> tag inside the <noframes> tag. I can name at least one well-designed HTML resource that agrees ( http://www.blooberry.com/indexdot/html/tagpages/n/noframes.htm ), and I believe it's stated in the following line from the HTML spec: <!ENTITY % noframes.content "(BODY) -(NOFRAMES)"> http://www.w3.org/TR/html4/present/frames.html#h-16.4.1 And http://validator.w3.org/ doesn't have a problem with there being a <body> tag inside (although it has a lot of other complaints about http://www.hot.ee/klubipegasus/ ) All that aside, I would argue that the <noframes><body></body></noframes> structure is a better way to produce a backwards-compatible document than simply <noframes></noframes>. After all, a strict HTML 2 browser (not that I think there are many) is going to look at the latter and see no BODY element and therefore nothing to display, but it will look at the former and just see some extra code around a valid body. Kelson Vibber www.hyperborea.org
At 05:25 AM 8/5/2003, Frank de Lange wrote:
That is caused by the extra <body> tag these sites add (lamlaw has a complete body section - something a frame document should not have,
I forgot to address this case in my earlier reply. IMO, it would be better to display whichever came first, the frameset or the body. The behavior is undefined, so it could be arguably "correct" to do any of the following: display only the frameset, display only the body, display only a note saying "Sorry, this page is malformed," or bring up a dialog box with the output from fortune (I just wanted to come up with something "unpredictable!") Of the various interpretations, I think the most *useful* would be either to prefer the framest (which is what most authors intended) or to prefer the element that appears first (which will usually be the frameset). Unfortunately frames are complicated by the fact that Netscape and Microsoft had slightly differing implementations until HTML 4 came out and standardized them. As a result, a lot of pages are written with the assumption that <noframes> is not necessary, or that it should be outside the <frameset> structure. Kelson Vibber www.hyperborea.org
On Tue, Aug 05, 2003 at 10:21:35AM -0700, Kelson Vibber wrote:
At 05:25 AM 8/5/2003, Frank de Lange wrote:
That is caused by the extra <body> tag these sites add (lamlaw has a complete body section - something a frame document should not have,
Of the various interpretations, I think the most *useful* would be either to prefer the framest (which is what most authors intended) or to prefer the element that appears first (which will usually be the frameset).
In my current version, the default behaviour is tu use the frameset if it is found. I have added a compile option '--enable-strict' which turns off checks for cruddy HTML (and thus reduces code size a bit at the expense of ability to display non-standard documents). I might have misinterpreted the specs, so I will remove the '#ifndef STRICT' from the frameset code. /me goes off and finds a version of current HTML specs, mine are outdated... Cheers//Frank -- WWWWW ________________________ ## o o\ / Frank de Lange \ }# \| / +46-734352015 \ \ `--| _/ <Hacker for Hire> \ `---' \ +31-640037120 / \ frank@unternet.org / `------------------------' [ "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." ]
participants (2)
-
Frank de Lange
-
Kelson Vibber