Of planes and spacers

Why choose a fragile solution when a robust one exists? Well, go ask the webmaster of United American Airlines.

I'm afraid several versions of Opera have struggled with the fragility of the <http://www.united.com/> flight lookup / order solution.

Basically the site wants to show you a waiting screen until the whole page is loaded. Then they want to use JavaScript to remove the waiting screen and show the results. However, instead of using the "onload" feature of the page, supported by any browser with JavaScript support they decided to monitor an invisible image at the bottom of the page and hide the wait screen when that image loads. Because that invisible image is "loaded" into the page on several occassions to push the design into shape for older browsers, many versions of Opera do not notify the script when the last instance of the image loads, and the waiting screen is never removed.

This is a bug in Opera. But sending notification about a loaded image only once and not once each time it is used is such a minor bug it would be an esoteric, low-priority report in the bug tracking system – if it wasn't for one single major site relying 100% on the opposite behaviour..

Morale: Webmasters and content management systems will never stop making things more complicated than they need to be.

Advertisements

2 thoughts on “Of planes and spacers

  1. Here's a fix:

    1) Save the following in a bookmark's address field:

    javascript:void(hideWaitMsg())

    2) When Opera stops loading the page, open this bookmark to remove wait screen.

    And BTW, next version of Opera will work just fine again 🙂

  2. I received some questions on this topic and thought the answers would have general interest. Posted with permission:

    Regarding your comments about UAL's website fragility, is the html coding
    style used by UAL considered improper by W3C standards?

    Answer: Yes, it is. They are using an "onload" event handler with an IMG element. According to the official HTML standard:<http://www.w3.org/TR/html4/interact/scripts.html#h-18.2.3>the onload event

    may be used with BODY and FRAMESET elements

    – as you see it does not state that it can be used with IMG. It is common practice among browsers to support it for IMG also but this is not in the W3 standard and thus not well defined. That makes it very likely that browsers support it in incompatible ways because they do not have a W3C standardised behaviour. Using an IMG onload for essential functionality makes a website less cross-browser reliable than it would be with a W3C-standards-compatible solution.

    Were the UAL webpage display issues due to a website design in support of MS IE only?

    That is impossible to say. I can not tell why this odd solution was chosen, or even whether it was chosen by a human or by some authoring tool. But every "extension" to the spec that is implemented by IE and used on the web becomes a de facto barrier to other browsers, even without the webmaster ever intending to exclude them.

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