Sometimes, people write stuff like this:
and wonder why IE is being stupid and not going to the page we're telling it to go. To get around the problem DON'T use a setTimeout. It's bad practice. Just add a "return false" to your onclick like so:
onclick="doSomething(); location.href='newPage'; return false;"