¿Quieres registrarte?

Ventana de alerta para AJAX con Javascript, DOM y CSS

Por: joarobles
3 de Noviembre del 2008
8,941 visitas

En este tip les mostraré como armé esta ventana de alerta para AJAX, con DOM y CSS... la idea es entregar una base para agregar funcionalidades tales como drag, eventos de salida, etc:

Esta es la base:

alerta.js

Código :

function alerta(titulo, texto) {



Primero definimos la función, que recibirá el titulo de la alerta mas el texto del contenido... Además, trabajaremos con una imagen llamada fondo.gif, que será el fondo de la ventana mientras se muestra la alerta (yo elegí una imagen de 4 píxeles con 3 transparentes para que se opaque el contenido bajo la alerta) y definimos un div contenedor de nuestra ventana de alerta llamado fondo como sigue:

Código :

var fondo = document.createElement('div');
      fondo.style.backgroundImage = "url(img/fondo.gif)";
      fondo.style.position = "absolute";
      fondo.style.width = "100%";
      fondo.style.height = "100%";
      fondo.style.top = "0px";
      fondo.style.left = "0px";
      fondo.style.verticalAlign = "middle";
      fondo.align = "center";


Ahora bien, tenemos el fondo, pero necesitamos además crear la ventana de alerta que contendrá lo siguiente:


veamos como sigue:

Código :

var ventana = document.createElement('div');
      ventana.style.width = "200px";
      ventana.style.margin = "5px";
      ventana.style.border = "solid 1px #999999";
      ventana.style.backgroundColor = "#FFFFFF";
      
      var barraTitulo = document.createElement('div');
         barraTitulo.style.backgroundColor = "#e2e3e5";
         barraTitulo.innerHTML = titulo;
      
      var contenido = document.createElement('div');
         contenido.style.padding = "5px";
         contenido.innerHTML = texto;
      
      var cerrar = document.createElement('div');
         cerrar.style.padding = "5px";


Ahora bien, tenemos que crear un botón de tipo input al cual le asignaremos la acción de ocultar nuestra ventana de alerta y dejar nuestra pagina como estaba anteriormente:

Código :

var boton = document.createElement('input');
            boton.type = "button";
            boton.value = "Aceptar";
            boton.onclick = function() {
               fondo.style.visibility = "hidden";
            }


Bien, solo queda agregar estos contenedores a donde correspondan para poder finalizar mostrando la ventana en el body:

Código :

ventana.appendChild (barraTitulo);
      ventana.appendChild (contenido);
      ventana.appendChild (cerrar);
      
   fondo.appendChild (ventana);
   document.body.appendChild(fondo);

return true;
}


Retornamos y esa es todo el código necesario para mostrar la ventana de alerta que se llama mediante alerta(titulo, texto). Espero que les haya servido, saludos!

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas javascript css ajax dom

Comentarios | Enviar un comentario
excelente me copan los tips de ajax

un ejemplin no estaria nada mal :)
Por: danyrik
Está bastante bien, sobre todo cuando no estás en plan de usar frameworks, enhorabuena.
Sin embargo hay un par de cosas que podrían mejorarlo:

  1. Puedes colocar los estilos en un CSS aparte en vez de que sean parte del código, luego puedes aplicar esas reglas añadiéndole Id's o clases a los elementos.
  2. Cada vez que llamas a la función está creando una nueva "alerta", así que, bien puedes destruirla cuando se cierre o podrías crearla sólo si no existe y luego trabajar con la visibilidad.

Por: The Fricky!
No hay ejemplo funcionando, hice el gran copy paste y no funca, lo probe con jQuery y tampoco, la idea es buena pero sin un final no dan ganas de verlo!
Por: tomasdev
Revísalo de nuevo, Loon. Funciona, yo lo probé varias veces.
Por: The Fricky!
Tira error en document.body.appendChild(fondo); dice que document.body es null (firefox 3)
Por: tomasdev
http://reweb.com.ar/labs/alertaAJAX/... probalo acá...
Yo tengo FF 3.0.3 y anda al pelo, no habras copiado algo mal?
saludos!
Por: joarobles
Por si hay algún despistado de como mandar a llamar esta función:

Código :

<script type="text/javascript">

alerta("Este es mi mensaje", "Este es el texto de mi mensaje <br/> y puedo escribir mas y mas...");

</script>

Por: flashreloco

flashreloco-blog :

Por si hay algún despistado de como mandar a llamar esta función:

Código :

<script type="text/javascript">
alerta("Este es mi mensaje", "Este es el texto de mi mensaje <br/> y puedo escribir mas y mas...");
</script>


gracias, nunca viene mal...
Por: joarobles
importante:

Código :


fondo.style.position = "absolute"; 




deberia ser:

Código :


fondo.style.position = "fixed"; 



Por: joarobles
haber me han mandado hacer que la alerta para aceptar o denegar sea en light sreen pero no encuentro nada con ese nombre porque por lo visto me han dixo que lo cambiaron de nombre...Alguien sabe?:S
Por: Marioooo-blog
Por favoorr ayudaaaaa :(
Por: Marioooo-blog
¿Light Sree? ¿No será LightBox? Eso es otra cosa. Googlea por LightBox o explícate mejor.
Por: The Fricky!
Mira quiero hacer como sale en esta pagina http://www.adslayuda.com/test-de-velocidad/ eso que sale participar o no participar y me dijeron que eso se hacia con el light scren.tu sabes ??
Por: Mariooooo-blog
Revisa este post de aNieto2K: Colección de Clones de LightBox para todos
Por: The Fricky!
Eyy muchas gracias era lo que estaba buscando me ha servido
Por: Mariooooooo-blog
Me podrias ayudar diciendome como puedo borrar un registro de la base de datos en codigo php atraves de una alerta de javascript.me podrias pasar algun codigo para que cuando demos el boton aceptar salte la alerta y nos borre el registro.gracias
Por: Churry-blog
Hola me podrian dar algun ejemplo de como eliminar datos de una bd marcando con un checkbox y que me elimine y a la vez me resfresque sin el dato que he marcado y todo esto que se con ajax.Por favor si sabeis Ayudarme que solo lo consigo en php :(.Gracias
Por: Mariooooo-blog
Necesito ayudaaaaaa Porvafoorrr
Por: Mariooooo-blog
Mariooooo-blog, ese tipo de preguntas puedes hacerlas en el foro de Javascript y AJAX, donde seguramente tendrán mejores respuestas. Por otro lado, procura redactar claramente tu duda, no sólo tirar ideas, para que puedan comprenderte. Y por el Gran FSM, por favor, usa signos de puntuación.
Por: The Fricky!
Excelente
Lo probare en http://www.delchoco.com
Por: Henry-blog
EXELENTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE...
Por: CENTENOWEB.COM-blog
Gracias me sirvió de mucho......=)
Por: NMN-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.