- From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
- Date: Wed, 01 Jun 2005 23:37:49 +1000
- To: Undeference@netscape.net
- CC: www-validator@w3.org
Undeference@netscape.net wrote:
> Obviously code like below is a nesting problem:
> <script type="text/javascript">
> // This should go between <head> and </head>
> </script>
> 
> But the reason for there being even a mention to the invalidity of the
> following is astounding (from
> <http://www.htmlhelp.com/tools/validator/problems.html#script>:
> 
> <script type="text/javascript">
> <!--
>   // This is an error!
>   document.write("</P>");
> // -->
> </script>
> 
> The purpose of commenting out the script content is to hide it from
> old (really old) browsers so that only newer browsers handle it.
Yes, but the only reason it works is because no browser reads the DTD; 
and such browsers are, therefore, unawre that the script element is 
defined with a content model of CDATA (character data) and continue to 
process it as PCDATA (parsed character data).
> However, just because UAs stoop to the level of snooping out comments
> to support an outdated and improper hack does not mean a validator
> should.
The reason browsers read the content of the script, despite it appearing 
to be within an HTML comment <!-- ... --> is because it's not really a 
comment.  Please see HTML Comments in Scripts for a thourough explanation.
http://lachy.id.au/log/2005/05/script-comments
> As far as a validator that *properly* parses HTML or XML documents,
> the above code should be exactly identical to the following:
> <script type="text/javascript">
> 
> </script>
That's correct for XHTML, but wrong for HTML.
-- 
Lachlan Hunt
http://lachy.id.au/
Received on Wednesday, 1 June 2005 13:38:04 UTC