- From: David Dorward <david@dorward.me.uk>
- Date: Tue, 18 Sep 2007 09:00:57 +0100
- To: "Kate" <kate@microbytes.com>
- Cc: www-validator Community <www-validator@w3.org>
On 17 Sep 2007, at 20:09, Kate wrote: > One of the most frustrating things I find with the validator is that > perfectly valid JavaScript causes errors. Embedding one computer language inside another computer language is always troublesome, you have to > Putting the JavaScript in a separate file works when the > information in the JavaScript is static BUT > when the JavaScript is in part generated by the PHP code it becomes > a real > problem. It is not always possible to avoid end tags in scripts as the > reason for the JavaScript in some of my files is to output blocks > of HTML or > XHTML code. The work around for this can be quite ugly with things > like > "document.write('<p id="'+$newid'+'" style="color:#FF0000">' + > $javascriptvar + '</'+'p>);" Well... (a) Best practise generally says "Don't use document.write", use DOM methods instead. (b) I'm not aware of any current browser which supports document.write in XHTML mode (XHTML documents served as text/html are treated at HTML so don't count) (c) The FAQ describes that situation, it is not hard to stick a "\" before the / in an end tag, or use CDATA markers (if you are insisting on using XHTML). > I have often wondered why the validator is not ignoring all the > data between > the opening <script type="text/javascript"> tag and the closing </ > script> > tag? Because the HTML and XHTML specifications require it to. The former because the parser has to recognise where the end of the script element exists (and there are a number of shorthand constructs in SGML which mean that </script> isn't the only thing that can end the tag), the latter because XML is significantly simpler then SGML and doesn't have any syntax in its DTDs which can say "The content of this element is not markup". -- David Dorward http://dorward.me.uk/ http://blog.dorward.me.uk/
Received on Tuesday, 18 September 2007 08:02:08 UTC