miscoded

the web is a hack

my booking form is a secret

, , , , ,

thomsonfly.com contains a hidden booking form. They don't seem to like bookings. The reason? The booking form is within a table that is styled to be hidden:
<table class="fullwidth" id="hometable" style="clear: both; visibility:hidden;">
Another part of the code is hidden from non-IE browsers with conditional comments:
..and there is some scripting that will remove the "loading" screen and show the search form if UA is IE. Naturally since the "loading" message is hidden with conditional comments, this:
(document.getElementById("loadMessage")).style.display = "none";
fails and stops the script before the table is un-hidden. Also obviously, they don't expect any booking visitors with JavaScript disabled, since then the form would simply never appear. "Thomsonfly - the low fares airline that goes further to confuse you."

Q&A with Davidliveclipboard

Comments

Andrew Gregory Sunday, July 23, 2006 7:55:43 AM

Opera is killed by its "document.all" support. Again.

IMO, that's a really good candidate for a new site preference.

João EirasxErath Sunday, July 23, 2006 9:56:29 PM

I think there should be a option in javascript options to disable document.all

Hallvord R. M. Steenhallvors Sunday, July 23, 2006 11:35:12 PM

Well, I'm pushing for at LEAST making it deletable again so that one could use a simple user.js to fake no document.all support, would be really interesting to surf with that. (I'm pretty sure it used to be settable or deletable but that "feature" seems to have fallen through a gap somewhere.)

Alexey Feldgendlerfeldgendler Monday, July 24, 2006 3:43:27 AM

Opera's support for document.all can be disabled with a UserJS (the variable can be turned "magic"). No separate site preference is needed.

...I always wondered what goes on inside the heads of authors of such web sites.

FataL Monday, July 24, 2006 2:57:54 PM

Such web developers probably don't know (care) about Opera too much. I.e. they may don't know that Opera supports both document.all and document.getElementById...

Hallvord R. M. Steenhallvors Wednesday, July 26, 2006 7:47:19 PM

Thanks Alexey, I didn't know that smile

FataL Tuesday, August 22, 2006 3:31:06 PM

One of the recent WebKit new features: Undetectable document.all, for compatibility with web pages that use it without checking.
Probably can be useful.

João EirasxErath Saturday, September 16, 2006 4:49:11 AM

@Fatal: I agree with that one.

document.all must evaluate to false whenever inserted in a boolean expression, yet document.all['foobar'] or document.all.foobar should work, this way not breaking the script, and prevent stupid IE browser sniffing that breaks Opera.
This is the best idea possible regarding document.all
I advise for the same to happen with attachEvent.
Many scripts sniff for attachEvent to clean symbols and stuff defined in scripts (to prevent IE's memory leaks) which break webpages when using the back button.

Alexey Feldgendlerfeldgendler Monday, September 18, 2006 6:27:11 AM

xErath: this will break scripts which properly use document.all (not for browser sniffing but for detection of this particular feature):

if (document.all) {
// if document.all is there, use it for quick retrieval
e = document.all['xyzzy'];
} else {
// do some complex traversal
}

It's OK if the script does just this, but it might just refuse to work without document.all because it needs that.

João EirasxErath Tuesday, September 19, 2006 1:49:50 AM

// do some complex traversal

like document.getElementById ?!?

document.all is mostly used for sniffing.
There are very few, rare, obscure cases of websites relying on this object only, not providing a DOM branch.
Opera would gain more by hiding it, than keeping the object visible.
That's what webkit did.

ale5000 Tuesday, September 19, 2006 9:18:01 PM

The best idea is insert an option in site preferences to enable/disable document.all

João EirasxErath Wednesday, September 20, 2006 2:43:36 AM

Originally posted by ale5000:

The best idea is insert an option in site preferences to enable/disable document.all

Most user don't have the smallest idea of what document.all is and its implications.
It should be hidden by default, and visible only when masking as IE, but always present and supported.
I've seen too many webpages sniffing for document.all and then trying to use ActiveXObject, using setProperty/selectNodes, or providing stupid hacks for lack of hover in other elements besides anchors.

Of interest
https://bugzilla.mozilla.org/show_bug.cgi?id=248549

João EirasxErath Monday, September 25, 2006 7:36:45 PM

Opera killed again with its document.all support
http://my.opera.com/community/forums/topic.dml?id=159901

Write a comment

You must be logged in to write a comment. If you're not a registered member, please sign up.