Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2007, 12:06
Swarf
 
Fecha de Ingreso: octubre-2005
Mensajes: 1
Antigüedad: 19 años, 5 meses
Puntos: 0
Internet Explorer se oculta tras una petición Ajax

Buenas:
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 (urlcapavaloresmetodo) {
    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"urltrue);
        
ajax.onreadystatechange = function() {
            if (
ajax.readyState==4) {
                if(
ajax.status==200document.getElementById(capa).innerHTML=ajax.responseText;
                else {
                    if(
ajax.status==404capaContenedora.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"urltrue);
        
ajax.onreadystatechange = function() {
            if (
ajax.readyState==4){
                if(
ajax.status==200) {
                    
document.getElementById(capa).innerHTML=ajax.responseText;            
                }
                else {
                    if(
ajax.status==404capaContenedora.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=0i<f.length-1i++) {
        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 (0valores.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> 
A ver si me pueden echar una mano, estoy perdido. Gracias
Saludos