I wrote a page that worked seemlessly inside every know browser but Internet Explorers. Well, nothing new under the sun, web developers' work consists mainly in making things run inside that shit.
Anyway, I was surprised by the nature of the error message: "object does not support property or method", raised during a getElementById call:
foo = document.getElementById("foo");
Element "foo" was a DIV placed in the middle of the page.
So I asked to myself: "what is IE trying to say?". If it really meant that a method wasn't supported, therefore it had to be the getElementById() function, because no other method was involved. But I'm pretty sure that document object HAS a getElementById method.
The other possibility is the lack of support for the property... but which one? The foo variable?? Yay man! The correct answer is this: you cannot give a variable the name of an element's id. By renaming the variable everything works correctly.
baz = document.getElementById("foo");
Here we go. Do you think this is nonsense? Well, so do I.
- Second, the error raised is totally incomprehensible and misleading.
- Third, it's incredible that in 8 versions of IE Microsoft did not think of fixing this.