oh Internet Explorer I Love HATE you!!

I am sure there is an entire army of techies out there who could give me a thousand reasons why I should hate IE for not supporting this or that technology, but I am writing this because I am sick of IE being too tolerant with my code!! That’s right, IE is too tolerant and it costs me development time!!

SO first off, I will say this just to deny the ability to someone else: I have many, many, many senior moments when I am developing. My staple excuse is that I have to go back and forth between a dozen languages/specs on a daily basis and I get confused. So I have come to expect errors, especially the first time I test something.

So I wrote about some of the stuff I have been working on where I am exposing business logic to external systems via XML/SOAP/WS/yaddayadda. To help developers I am creating a central place to access and test all of these methods, and the page that delivers the tests uses the Javascript xmlhttp object to make the calls, and display the results. A standard in too many corporations, including mine, is the browser standard of Internet Explorer. I have Firefox loaded on my machine but since we have alot of IE only apps, I find myself using IE by default.

So I am javascripting like mad and everything is working no matter what I do and I am feeling on top of the world. Then I get a somewhat unimportant error that IE wants to hide behind a non-descript error message. So I fire-up Firefox to use the JS debugger and NOTHING WORKS!!!

So I will not detail the amount of time I spent looking for the problems, but I will simply tell you why IE is too tolerant. IE allowed me to access a node array using parenthesis. That’s right, two stupid parenthesis killed everything. I had node.childeNodes(x) but Firefox Javascript demands childNodes[x], which is proper JS syntax. Now, I know that I should be accessing arrays with brackets, but I just forgot. Firefox did not give a syntax error just led me to think that there were no children, and IE WORKED!!! On top of that, IE allowed me to use this syntax: if(node.hasChildNodes) - but Firefox told me hasChildNodes is not a method; which it is not. hasChildNodes is a property which requires the two parenthesis at the end: if(node.hasChildNodes()).

So there you have it, IE is too tolerant and I am sick of it!

Comments are closed.