Re: xhtml 2.0 noscript

"Mark Birbeck" <mark.birbeck@x-port.net> wrote in message 
news:640dd5060607290621j6d2e9adan27621801efd18e7c@mail.gmail.com...
> The issue *is* an XML one.
>
> document.write() is normally carried out as the document is loading,
> by interspercing <script> elements within the normal mark-up. This
> means that the *initial* document at the point of completion of the
> 'onload' event could be different when running in a browser with
> script, and one without.

Which is no problem, and applies as much to an HTML document as an XML one.

> But with XML we really need to have the document fully loaded and
> parsed before we can start manipulating it, which means that
> document.write() doesn't mean anything.

I don't see why we need that, indeed requiring it would prevent all sorts of 
things that are required on the web today - progressive rendering for 
example - a requirement in SVG for example.

> So if XHTML doesn't have document.write(), then that means that
> whatever mark-up you put into the body of your document you can
> guarantee it will be the same after the 'onload' event regardless of
> whether the browser has script turned on or off, or doesn't even
> support script.

No you don't, there is no such safety in XHTML today:

As an example, the following is not disallowed:

<html xmlns="http://www.w3.org/1999/xhtml"><head>
<script type="text/javascript">
var el=document.createElementNS('http://www.w3.org/1999/xhtml','title');
el.appendChild(document.createTextNode('chickens'));
document.documentElement.firstChild.appendChild(el)
</script>
</head>
<body>
Testing...
</body>
</html>

Indeed, it works in current XHTML user agents.

That doesn't change the fact that xhtml2 really doesn't need a noscript - it 
was a mistake in previous versions.

Cheers,

Jim. 

Received on Saturday, 29 July 2006 14:03:10 UTC