Fred Drake wrote:
On Tue, 16 Nov 2004 13:03:07 +0100, Marco Bizzarri <m.bizzarri@icube.it> wrote:
<script><![CDATA[ if (gecko) document.write('</table></td></tr>'); ]]>
...
Compilation failed TAL.HTMLTALParser.NestingError: Open tags <html>, <body>, <script> do not match close tag </table>, at line 10, column 36
therefore, the parse is interpreting the inside of the <script> tag as normal tags instead of simple content of the script.
Not just any tags; it's catching the "</" in particular. The parser being used doesn't understand <![CDATA[...]]>, so doesn't avoid this problem.
In addition to the options Tonico suggested, there's one more option: change the line containing the </table> to:
if (gecko) document.write('<' + '/table></td></tr>');
This avoids the specific behavior you're seeing, and would also work without the CDATA marked section.
The HTML spec on dynamic document modification: http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.4 points out that you can also escape the forward slash (all of them need escaping, not just the first one), e.g.: if (gecko) document.write('<\/table><\/td><\/tr>') Tres. -- =============================================================== Tres Seaver tseaver@zope.com Zope Corporation "Zope Dealers" http://www.zope.com