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.