Foros del Web » Programando para Internet » Javascript »

Recargar aplicacion.

Estas en el tema de Recargar aplicacion. en el foro de Javascript en Foros del Web. Que tal !!! Tengo una aplicacion con un formulario de login que funciona como un popup, el usuario ingresa sus datos y si son correctos ...
  #1 (permalink)  
Antiguo 26/07/2010, 10:40
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 2 meses
Puntos: 8
Recargar aplicacion.

Que tal !!!

Tengo una aplicacion con un formulario de login que funciona como un popup, el usuario ingresa sus datos y si son correctos cierro el popup y recargo la aplicacion, como puedo hacer este ultimo paso ? si estoy en el popup y trato de usar un window.location el hace referencia al popup y necesito es hacer referencia a la aplicacion.

Alguna sugerencia ??

Saludos.
  #2 (permalink)  
Antiguo 26/07/2010, 10:59
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 13 años, 11 meses
Puntos: 12
Respuesta: Recargar aplicacion.

Escribe el codigo que ya tienes para poder ayudarte mejor.
  #3 (permalink)  
Antiguo 26/07/2010, 11:51
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: Recargar aplicacion.

Que tal !!!

La aplicación funciona así:

Una de las opciones de la aplicacion tiene el evento onclick para abrir el popup

Código:
"<li><a href=\"\" onclick=\"return abrirPopupLogin()\" >Login </a></li>";

El popup se abre con determinadas caracteristicas dependiendo del navegador:

Código:
function abrirPopupLogin() {

    var width  = 300;
    var height = 300;
    var left   = (screen.width  - width)/2;
    var top    = (screen.height - height)/2;
    var params = 'width='+width+', height='+height;
    params += ', top='+top+', left='+left;
    params += ', directories=no';
    params += ', location=no';
    params += ', menubar=no';
    params += ', resizable=no';
    params += ', scrollbars=no';
    params += ', status=no';
    params += ', toolbar=no';
    params += ', modal=1';

    nombreNavegador = navigator.appName;

    if(nombreNavegador.indexOf('Microsoft') == -1){
        window.open('login.html','name',params);
    }else{
        window.showModalDialog("login.html","name","center:yes;dialogWidth:255px;dialogHeight:250px;");
    }

    return false;
}
Este es el formulario del popup, que en el evento onsubmit llama la funcion
procesar login:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/procesarLogin.js"></script>
  </head>
  <body>
      <form action="procesarLogin.jsp" onsubmit="return procesarLogin()" >
          Usuario: <input type="text" size="10" id="usuario"/>
          Password <input type="password" size="10" id="password"/>
          <input type="submit" value="Enviar" />
      </form>
  </body> 
</html>

La funcion procesaro login:
Código:
function cargarObjetoAjax()
{
    jQuery.ajaxSetup({
        'xhr':function(){
            return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
        }
    });
}

function procesarLogin()
{
    cargarObjetoAjax();

    var cedula = $("#usuario").attr("value");
    var password = $("#password").attr("value");

    jQuery.ajax({
        type: "POST",
        data: "usuario="+cedula+"&password="+password,
        dataType: "html",
        contentType: "application/x-www-form-urlencoded",
        url:"procesarLogin.jsp",
        success:mensaje,
        error:problemas
    });

    return false;
}

function mensaje(respuesta)
{
    var accion = respuesta.toString();

    if(accion.indexOf("error") > -1 ){
        alert("El usuario no existe en la base de datos");
    }else{
        window.close();
        
    }
}

function problemas(XMLHttpRequest, textStatus, errorThrown)
{
    alert(XMLHttpRequest);
    alert(textStatus);
    alert(errorThrown);
}
En este ultimo fragmento de codigo tengo la funcion mensaje si el usuario no existe muestra un alert y no hace nada mas pero si el usuario existe necesito cerrar el popup (lo cual hago con window.close() ) pero tambien necesito recargar la aplicacion para que haga efecto el login del usuario y se carguen las demás opciones, como puedo recargar la pagina ?

Saludos y gracias.
  #4 (permalink)  
Antiguo 26/07/2010, 12:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 1 mes
Puntos: 1485
Respuesta: Recargar aplicacion.

desde el popup, usa el objeto opener el cual representa el objeto window de la ventana que abrio dicho popup, o sea, en tu caso donde tu quieres que cargue la aplicacion. a partir de opener haces lo que necesites: invocar alguna funcion que carga la aplicacion, recargar el documento para que la aplicacion tome efecto, o redireccionar el navegador hacia la aplicacion desde el objeto location de opener. por supuesto, tienes que hacerlo antes de cerrar el popup.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 26/07/2010, 12:52
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: Recargar aplicacion.

Muchas gracias por la respuesta, funcionó perfectamente. Lo único que hice fue agregar esta linea :

Código:
window.opener.location = "pagina";
y todo resuelto

gracias y saludos.
  #6 (permalink)  
Antiguo 26/07/2010, 14:36
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 13 años, 11 meses
Puntos: 12
Respuesta: Recargar aplicacion.

Hola, muy bien. A la proxima ya sabes, escribe tu codigo para ver como se te ayuda mejor.

Etiquetas: recargar, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:27.