JavaScript - Evitar que 2 popups se lancen al mismo tiempo

 
Vista:
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 06/03/2014 20:26:36
Buenas a todos, otra vez yo viendo si alguien por ahí me puede ayudar, como siempre, desde ya muchas gracias por entrar a leer mi tema, explicaré brevemente lo que tengo planeado.

En mi sitio he colocado 2 empresas de PopUps al mismo tiempo, esto ocasiona que cuando un usuario da clic a un enlace, éste tarde de 3 a 5 segundos en reaccionar, pues al querer lanzarse los dos PopUps al mismo tiempo el navegador lanza el primero y bloquea el segundo, y este proceso es lo que alenta la reacción.

Sinceramente no se de javascript, pero hace un tiempo aprendí a usar y leer cookies, y con ayuda de este foro perfeccioné mi medieval script xD, así que con mi nuevo conocimiento pensé en solucionar esto así:

Al cargar la página se hace una Cookie con "segundopopup, nolanzar, expiraen60segundos"
y bueno ya que se lance el primer PopUp.

Luego a los 60 segundos que caduque la cookie, hacer un If que ahora si escriba el código del 2do PopUp y lo lance.

Pero luego pensé "pero si se recarga la página se recarga la funcion de la Cookie que expira 60 segundos y bueno, nunca funcionará" D;

Así que sólo pido un consejo para saber que puedo hacer, cualquier indicio que me digan es bueno, yo soy muy investigador y trato de aprender siempre, pero como ni si quiera sé cuál función usar o cómo hacerlo, ahí me cuatrapeo xD.

El popup se lanza al hacer clic sobre cualquier lado (enlace, imagen, texto,parte en blanco) por lo que estaba pensando en hacer un javascript que:

1.-Espere el primer clic del usuario (donde sea)
2.-Al detectar que ya hizo el clic, ahora sí cargar el segundo popup
3.-Y listo

Con que me puedan decir que función usar yo la investigaré y descubriré como funciona, no pido que me hagan el script ni nada parecido.

De igual forma de antemano muchas gracias, saludos a todos.

P.D.: Si alguien me puede decir cómo se llaman los por ejemplo "alert, document.write" yo les digo funciones pero estoy seguro que no se llaman así jeje.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Evitar que 2 popups se lancen al mismo tiempo

Publicado por xve (2100 intervenciones) el 06/03/2014 22:03:42
Hola Vega, intento indicarte haber si te puedo ayudar...

Entiendo que el primer clic ya lo tienes controlado, el problema lo tienes al lanzar el segundo popup...

Una vez lanzado el primer popup, puedes utilizar la función: setTimeout() que te ejecutara una función o evalua una expresión pasados n milisegundos...

Como ejemplo, abrimos un popup o pestaña a los 60 segundos.
1
setTimeout(function(){window.open(.....)},60000);

Coméntanos si esto te sirve....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 07/03/2014 03:19:08
Wow, sí gracias, me es de mucha ayuda ya tengo una idea de cómo hacerlo, si no es mucho abuso, sabes si hay modo de hacer que
1
setTimeout(function(){window.open(.....)},60000);

Empiece a contar al detectar un clic en cualquier parte del sitio (que es cuando se lanza el primer PopUp)

No se como se llamen las capas invisibles que sirven para detectar el clic y lanzar el popup, me supongo meter la función en un onclick... pero el onclick cómo lo detectaría D:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 07/03/2014 18:33:33
Wow armando las dos piezas lo he conseguido, no pensé que lo lograría por que ni supe lo que hacía sólo experimenté y plop, sirvió jeje, muchas gracias por la ayuda :D creo que ya estoy entendiendo la sintaxis de Javascript.

Aquí dejo un ejemplo del código para que a otros les sea útil.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Evitar dos popups al mismo tiempo</title>
<script src="http://code.jquery.com/jquery-1.11.0.js" type="text/javascript"></script>
<script>
//Puedes cambiar los alert por otra cosa como window.open o si no un document.writeln para poner un src de javascript de la empresa de PopUps, convierte el codigo html a java documentwriteln aqui: http://www.nullskull.com/articles/20060517.asp (ve al final donde estan los textbox)
 
window.onload=function(){alert('Este es el primer PopUp (remplaza este codigo por el que tu quieras)');}
 
$(document).click(function(){
    setTimeout(function(){alert('Haz echo clic y ya se lanzo el primer PopUp. Este es el segundo PopUp (remplaza este codigo y elige los milisegundos en donde dice 1000 = 1 segundo');},1000);
 
    // si lo deseamos podemos eliminar el evento click
    // una vez utilizado por primera vez
    $(document).unbind("click");
})
</script>
</head>
<body>
<p>Hola, soy un contenido :D</p>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Evitar que 2 popups se lancen al mismo tiempo

Publicado por xve (2100 intervenciones) el 07/03/2014 19:50:06
Gracias por compartirlo Vega!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 14/03/2014 00:40:33
Hola de nuevo, revivo el tema por que me surgió un problemita, intenté usar document.write en vez del alert, y resulta que el todo el html se desaparece y lo remplaza el código del PopUp #2.

Leí que para que esto no pase debo usar document.createElement(), pero no he logrado decifrar cómo acomodarlo, vi un ejemplo de cómo usarlo, y este fue mi intento (no se burlen si está terrible la sintaxis, apenas estoy aprendiendo xD):

1
2
3
4
5
6
7
8
9
10
$(document).click(function(){
    setTimeout(function(){
	var parrafo = document.createElement('script');
    var texto = document.createTextNode('alert(\'Script agregado\')');
    parrafo.appendChild(texto);
		},1000);
 
    // si lo deseamos podemos eliminar el evento click
    // una vez utilizado por primera vez
    $(document).unbind("click");

Por su puesto no funcionó

¿Alguien podría decirme si al menos es cuestión de acomodar el código?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Evitar que 2 popups se lancen al mismo tiempo

Publicado por xve (2100 intervenciones) el 14/03/2014 10:38:32
Hola Vega, creo que lo que te falta es añadir dicho script al código... prueba así:

1
2
3
4
5
6
7
8
9
10
11
12
$(document).click(function(){
    setTimeout(function(){
        var parrafo = document.createElement('script');
        var texto = document.createTextNode('alert(\'Script agregado\')');
        parrafo.appendChild(texto);
        $("body").append(parrafo);
    },1000);
 
    // si lo deseamos podemos eliminar el evento click
    // una vez utilizado por primera vez
    $(document).unbind("click");
})

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 19/03/2014 07:51:39
Hola, gracias por responder, desafortunadamente no funcionó, hice unas variaciones de la acomodación y no tuve éxito, crearé un nuevo hilo con un tema similar por que me surge el mismo problema al momento de crear contenido con write, saludos y gracias de nuevo por la ayuda anterior :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 19/03/2014 08:36:27
.__________. pero que tonto fui, no sirivó por que olvidé agregar la librería de JQuery en mi página de pruebas html xDD

Lo siento por mi equivocación n_n"

Ahora que ya se usar document.write y hacer ifs en java, un mundo de infinidad de posibilidad se abre ante mi :D muchas gracias por toda la ayuda, seguiré visitando el foro para reforzar mis conocimientos y en un futuro poder compartirlos jeje

Dejo el código final para los que quieran utilizarlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Evitar dos popups al mismo tiempo</title>
<script src="http://code.jquery.com/jquery-1.11.0.js" type="text/javascript"></script>
<script>
//Puedes poner cualquier codigo javascript a partir de createTextNode(' [Tu codigo aqui] '); (respeta las comillas y apostrofes o tendras error, no las mezcles) para convertir html a javascript ve a este sitio http://www.nullskull.com/articles/20060517.asp (ve al final donde estan los textbox, das clic derecho para acrivarlos y ya puedes comenzar a escribir tu codigo, una vez convertido, pulsa Control+A y Control+C para copiarlo, pues estan bloqueadas las cajas y no te deja copiarlo con clics)
 
window.onload=function(){
	        var parrafo = document.createElement('script');
        var texto = document.createTextNode('\n\/\/remplaza a partir de aqui\nalert("Coloca aqui tu codigo para el primer popUp");\n\/\/ya no remplaces hasta aqui\n');
        parrafo.appendChild(texto);
        $("body").append(parrafo);
}
 
$(document).click(function(){
    setTimeout(function(){
			        var parrafo = document.createElement('script');
        var texto = document.createTextNode('\n\/\/remplaza a partir de aqui\nalert("Coloca aqui tu codigo para el segundo popUp");\n\/\/ya no remplaces hasta aqui\n');
        parrafo.appendChild(texto);
        $("body").append(parrafo);
},1000);
 
    // si lo deseamos podemos eliminar el evento click
    // una vez utilizado por primera vez
    $(document).unbind("click");
})
</script>
</head>
<body>
<p>Hola, soy un contenido y no me borraré :D</p>
</body>
</html>

Saludines!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Evitar que 2 popups se lancen al mismo tiempo

Publicado por xve (2100 intervenciones) el 19/03/2014 09:08:32
jejejejeje... esto pasa a menudo... gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Evitar que 2 popups se lancen al mismo tiempo

Publicado por Vega (16 intervenciones) el 19/03/2014 09:20:41
Me encontré con otro problema pero ya lo pude solucionar, si deseas que el javascript se agregue vía src,

agrega en una linea nueva después de var parrafo = document.createElement('script');

lo siguiente:

1
parrafo.setAttribute('src', 'http://ejemplo.com/javascript.js');

Y simplemente dejar var texto = document.createTextNode('');
en blanco.


Ahora si ya puedo hacer muchas cosas en mi sitio, ahora si los últimos saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar