dead live

live.com was fixed to work in Opera but apparently recent changes have broken it again. Here is why:

  • They declare a namespace without associating a namespace URI with it: <html xmlns:Web> in a normal text/html document
  • When they use the namespace in <web:binding>, Opera will not return that element when you do document.getElementsByTagName('binding')
  • (Also note that they use a capital letter in the namespace declaration and lower case in the document)

Now, this would work fine if they sent an XHTML content-type, added a namespace URI and fixed the case issue.

But is it a bug in Opera? I haven't been able to interpret the xmlns spec in enough detail to understand whether this is covered. Or is it in the DOM spec? Validation certainly seems to say it is wrong to declare a namespace without URI.

The only thing I know for sure is that FireFox does the same as Opera, and that might indicate that a standard is being followed. Perhaps readers more skilled at xmlns juggling can enlighten me, if not I'll learn when developers comment on the bug report..

Advertisements

5 thoughts on “dead live

  1. The explanation makes me go d'oh, of course:* page is sent as text/html, meaning we use HTML mode, not XHTML. Consequently, xmlns attributes is ignored entirely.* and.. that means there are custom elements named "web:binding" in that page. One should use getElementsByTagName('web:binding') to get to them..Right.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s