En resumidas cuentas es lo que dice el asunto.
Supongamos que tenemos tres programas abiertos, por tanto, tres ventanas. Una de ellas es IE. Cuando hago una petición Ajax en IE la ventana se pone en último lugar. A efectos prácticos me desaparece y se me queda delante otro de los programas.
Con Firefox me pasa algo similar, no tan drástico, ni mucho menos. Con Firefox hace lo mismo pero sólo con las ventanas del propio Firefox. Por ejemplo, si tengo abierto el Firefox y la ventana del código fuente, pues al hacer la petición Ajax se pone al frente esa ventana secundaria desapareciendome el Firefox.
La diferencia respecto con el Internet Explorer es que este se pone el último y el Firefox el segundo en el orden de ventanas.
Adjunto todo el código que uso para Ajax o que está relacionado con él asi como un ejemplo de petición:
Código PHP:
function nuevoAjax() {
var xmlhttp=false;
try {
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
// Creacion del objeto AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
function FAjax (url, capa, valores, metodo) {
var ajax=nuevoAjax();
var capaContenedora = document.getElementById(capa);
/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
if(metodo.toUpperCase()=="POST"){
ajax.open ("POST", url, true);
ajax.onreadystatechange = function() {
if (ajax.readyState==4) {
if(ajax.status==200) document.getElementById(capa).innerHTML=ajax.responseText;
else {
if(ajax.status==404) capaContenedora.innerHTML = "La direccion no existe";
else capaContenedora.innerHTML = "Error: ".ajax.status;
}
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(valores);
}
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
if (metodo.toUpperCase()=="GET"){
ajax.open ("GET", url, true);
ajax.onreadystatechange = function() {
if (ajax.readyState==4){
if(ajax.status==200) {
document.getElementById(capa).innerHTML=ajax.responseText;
}
else {
if(ajax.status==404) capaContenedora.innerHTML = "La direccion no existe";
else capaContenedora.innerHTML = "Error: ".ajax.status;
}
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(null);
}
return;
}
function Valores (f) {
var valores = "";
for (i=0; i<f.length-1; i++) {
if((f.elements[i].type == "checkbox" && f.elements[i].checked) ||
(f.elements[i].type == "radio" && f.elements[i].checked) ||
(f.elements[i].type != "checkbox" && f.elements[i].type != "radio"))
valores += f.elements[i].name+"="+f.elements[i].value+"&";
}
return (valores.substring (0, valores.length-1));
}
Código HTML:
<a href="javascript:FAjax ('noticias.htm','cuerpo', null, 'GET');"> <img border="0" src="Imagenes/Web/Inicio.png" width="64" height="17" alt="Inicio"></a>
Saludos