1. A IE, you never cease to amaze and surprise me!

    A relatively little known, and even less appreciated, way of doing a for loop in javascript works as follows:

    for (key in array) {
         var element = array[key];

    You might recognize this as essentially the equivalent of the foreach loop in php and other languages. It’s a very useful structure when dealing with associative arrays, or just to save yourself some typing. Unfortunately, there are some quirks with this approach. Notably, as usual, in Internet Explorer.

    While at work today I was looping through some form elements, in case the page the script would ran on had multiple forms. Though my test page only had a single form element in it, IE gave me multiple additional elements, such as the letter p, and the number 13…

    Worse still, it did the same for the form.elements array within an inner loop. I did some investigation and found that this is a bug in IE, and has been around for a while now.

    So thank you IE8, for showing us yet again that as far as you’ve come, you’re still the bottom of the proverbial browser barrel.

    Also, thank you Doug for also writing a post on this issue… albeit over 3 years ago 😛 I just felt I should share the fact that this is still very much an issue which IE has, even in its most recent version.

  2. On IE6 and Windows Update

    Once upon a time Internet Explorer’s ties to Windows and Microsoft were it’s biggest strength, but in retrospect, it may have been it’s biggest flaw. Numerous people now use FireFox, Opera, Chrome, and other browsers, but none of these have the single most glaring fault that Internet Explorer boasts about like a badge of honor… Windows Update. Firefox and others all update on their own, automatically, and independently (by default), and give the user little reason to disable this behavior. IE, by contrast, updates through Windows Update (I believe it’s actually been rebranded Microsoft Update now); a service which many people disable because of the risk of receiving updates which cripple their system (as the WGA check did to some people, even though their licenses were valid). This puts a large portion of IE users out of the reach of the update system, and further widens the chasm between each iteration of Internet Explorer.

    The cost to us? Being forced to write pages for a browser so old that when it was first released, George W Bush had just recently become our new President, and was on vacation in preparation for what he expected to be two easy and uneventful terms. Not to mention the thousands, if not millions, of users who view the web with poor css implementation, poor png rendering, broken javascript support, etc etc. So now, with IE8’s release, developers are forced to write code for 3 Microsoft browsers which render content in wholly different ways. Don’t get me wrong, I’m glad that IE8 has at least taken some steps toward standards compliance, but it’s a single step in a journey of miles. It seems to me that the problem isn’t moving IE7 users to something better, the problem is moving IE6 users at all.