Thursday, April 08, 2010

Gotcha Of The Day: Running IE8, IE7 and IE6 At the Same Time

Running IE8 is trivial - just go to Microsoft and download it.

Running IE6 turns out to be fairly straightforward too. Windows 7 comes ready to run a virtual Windows XP box, and preinstalled is IE6 (how generous of them to give you an ancient browser when you install their ancient OS).

Running IE7 eluded me, but I figured I had my bases covered between IE8 and IE6. Of course, I was wrong. I just recently did a client install, and you guessed it, the site wasn't working properly in IE 7.

A Super Quick Fix - Simulating IE7 from IE8

IE8 has a remarkably sophisticated debugging mode. It's available by pressing F12. One feature it offers is the ability to switch browser modes. You can choose from IE7, IE8 and IE8 Compatibility mode. While these aren't exactly extensive options, they appeared to be just what I needed.

Alas, as you can imagine, the issue I was trying to debug didn't show up using this mode.

A Slow Fix - Creating an IE7 Windows XP Instance

A much better solution was to go ahead and create a news Windows XP instance, and in that virtual machine, upgrade to IE7. The result would be the native operating system runs IE8, the original Windows XP virtual machine running IE6, and a new instance running IE7.

This solution is a little bit tricky, as it's not trivial as to how to create a clone of the Windows XP instance on Windows 7. Luckily, Duncan Smart's Weblog perfectly explains the process. Just follow along, and you'll end up with exactly the setup you're looking for.

I mentioned that this is a slow fix, because, well, it is. What's slow about it is that now only do you need to create a new Windows XP machine instance, and wait for it to boot the first time. But then you've got to go through the whole IE 7 upgrade process.

It may be slow, but it was wonderfully effective.

With the bug now visible, I was able to fix the issue in just a few minutes.

I was just wondering about the value of virtualization yesterday, and here I go ahead and provide an excellent use case.