Forse perché stai facendo una chiamata sincrona
http.open("get", file+"?action="+action, false);
prova a renderla asincrona
http.open("get", file+"?action="+action, true);
il motivo perché con firefox non "riscontri" l'anomalia e con IE si (il blocco) potrebbe essere dato dal motore interno dei browser che gestisce le richieste, con IE9 non dovrebbe più accadere avendo un motore più performante![]()