Site Navigation

Thursday, October 2, 2008

Internet Explorer first to need a "Fish Bicycle"!

Internet Explorer first to need a "Fish Bicycle"!

*&%$#@! on earth is a Fish Bicycle?

Fish Bicycle:
A Fish Bicycle is just that. A bicycle for a fish.

"But a fish doesn't need a bicycle!" you say?

- Exactly! -

A Fish does not need a bicycle. The idea of a fish needing a bicycle is beyond humorous to the point of gosh darn absurdity.

The term is used in many circles to describe something that is just plain not needed... not yesterday, not now, not ever.

As a developer you may have had a client ask for a Fish Bicycle. They insisted on one of those huge 6 paragraph legal footnotes on every page of a site and every email, or that data get saved to 5 redundant databases "just to be sure".

Did they need it? of course not... it was a Fish Bicycle.

So, what's the Fish Bicycle in Internet Explorer you ask? Ah ha! We're about to find out... but not so fast.

A Fish Bicycle in programming is when you need to "give a fish a bicycle" in order to workaround a bug.

For example: If you had to add an <input/> tag to the <head/> of a page in order to add a <div/> to the <body/>, that would be a Fish Bicycle. The body tag shouldn't have any issue adding a div, and the head tag certainly doesn't need an input tag.

Lets see if you can figure it out first! Here's a few clues.
  1. It happens in all versions of IE, including IE8 Beta 2

  2. It is definitely a bug, no question of that

  3. It isn't a bug already reported on Web Bug Track

  4. It is a JavaScript issue

  5. Oct. 4 - New Tip! It isn't related to any element in the <body/>

  6. Nov. 6 - New Tip! It involves popup windows

  7. {tip coming...}

Got an idea? Need more info? Ask away in the comments! I'll publish a full writeup in a few days but I want to see if any of the readers can guess it first.


Markus said...

Oh man! I love a challenge but darn I wish I knew what it was.

Will you tell us if we are right or wrong on guesses?

I think it is something deep in the bowels of navigator or plugins?

Am I close?


Jess said...

Need more clues!!
Is it to do with having a trailing comma when defining an array?

e.g. in IE

var names = ['fred','jane','mary',];

would have a length of 4, not 3.

my other guess would be related to namespaced attributes that you get and set in IE like


rather than call the namespace equivalent.

xyz said...

@markus - I will let you know if you guess it right, however it does not have to do with the navigator or navigator.plugins objects.

@jess - That array "glitch"? has caught me more than once, but that's not it. It isn't to do with the implementation of setAttribute either, although there are enough bugs with that method already! ;-)

Anonymous said...

What about .innerHTML? there are a bunch of bugs with IE and innerHTML already but I'm sure there is more!

Actually I heard the other day that you can't set the .innerHTML of a FORM element? Is this true? and is this the fish bicycle?

By the way I love the term "Fish Bicycle" - I have some clients that only seem to want these kind of things :( At least now I have a fun name to describe them!

Adam said...

The fact that it doesn't render tables without tbodys?

xyz said...

@adam - no it isn't to do with the TABLE element and innerHTML (bug 210)
although it is quite odd that you need a tbody to build a table from JavaScript, but not in pure HTML. I'll make the guessing a bit easier... it has nothing to do with table elements.

Pablo said...

Ok so its a bug with IE? I gotta think that somehow the [select] element is going to be part of the issue. Have you found some way to add event handlers to [option] elements? (which otherwise fail)

xyz said...

@Pablo - nope not to do with the Select or Option elements (although I would certainly like a workaround for the event-less option elements.

Anonymous said...

I dont use them myself but there are a bunch of filters for IE for things like text shadows and transitions. I believe that if you try to use them but the clients PC has cleartype turned on that it doesn't work properly is it related to the filter transformations?

anthony said...

@import for external CSS files?

Is it the FOUC (Flash Of Unstylized Content) bug in IE?

This happens when using an @import CSS rule. The fix is to use a [link] element instead, but this would be an obvious
duh! issue since IE should handle the @import without issue.

alice said...

would it be anything to do with location.hash IE doesn't always seem to behave the same when I visit the same url more than once.

what I do is add an extra parameter to the url to make sure it isn't caching anything.


xyz said...

Good guesses but not filters, or @import links. (sorry)

@Alice - I haven't noticed (m)any bugs with the location.hash in IE, but if you can isolate a bug I'd love to hear about it! The current Fish Bicycle (I've been advised of a potential 2nd affecting just IE7/IE8) is not to do with the location.hash object.

Keep the guesses coming, I'll be letting the cat out of the bag soon!