bnkuhn at gmail.com
Tue Dec 8 13:48:21 PST 2009
> but it's invalid to set it to anything other than the two values I just
That's the part I'd like to see changed. I understand that if it's present,
it's on. So, why can't async="true" be valid? I think all browser vendors
will implement it that way anyway. They'd be crazy not to.
On Tue, Dec 8, 2009 at 1:41 PM, Tab Atkins Jr. <jackalmage at gmail.com> wrote:
> On Tue, Dec 8, 2009 at 1:49 PM, Brian Kuhn <bnkuhn at gmail.com> wrote:
> > How do I correctly set a boolean attribute on a DOM element object in
> > var script = document.createElement('script');
> > script.async = true; // makes the most sense, but appears go
> > the spec
> > script.async = 'true'; // worse, but not bad, but also appears to
> > against the spec
> > script.async = ''; // sets to empty string, but what does that
> > really mean?
> > script.async = 'async'; // sets async = async, which is weird and
> > And then you have the debate on setting the property directly versus
> > setAttribute. Any thoughts on that?
> > To me, boolean attributes seem to break the rule of least surprise. I
> > it very hard to believe people will understand:
> > <script async="" src="..."></script> or <script async="async"
> > src="..."></script>
> > more than:
> > <script async="true" src="..."></script>
> Setting an attribute foo to '' or 'foo' is the correct way. To unset
> it, remove the attribute entirely.
> This is mostly unchangeable now, because it's how HTML and XHTML have
> worked for a long time. XHTML requires the longer foo="foo" form, and
> in HTML writing an element like <bar foo> will give the element an
> attribute "foo" with the value of the empty string. Thus those are
> the two proper ways to set it. For compatibility reasons setting
> *any* value on the attribute sets it (it's set or not based purely on
> the presence or absence of the attribute itself, not the value of the
> attribute), but it's invalid to set it to anything other than the two
> values I just mentioned.
> If authors are writing HTML, they can just do <script async src="…">.
> Simple and easy.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the whatwg