Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Pop-up a abrir desde link, pero que actúa una sola vez

Estas en el tema de Pop-up a abrir desde link, pero que actúa una sola vez en el foro de Javascript en Foros del Web. Buenas a todos, Tengo una página con una serie de links que abren documentos informativos como pop-ups. El problema es que, una vez dentro de ...
  #1 (permalink)  
Antiguo 15/07/2014, 03:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Pop-up a abrir desde link, pero que actúa una sola vez

Buenas a todos,

Tengo una página con una serie de links que abren documentos informativos como pop-ups.

El problema es que, una vez dentro de la página, cualquier link actúa según lo esperado (abre el pop-up). Luego cierro el pop-up. Pero cuando pulso por segunda vez el mismo link ya no se abre el pop-up.

La parte del código donde se define cualquiera de los links es:

Código HTML:
<div id="link1"><a href="javascript:void();" title="Click para abrir ventana" onClick="link1();">Cómo usar esta web</a></div> 
... y la función que abre el documento PDF en el pop-up es:

Código:
function link1() { // Link "Cómo usar esta web".
	link1=window.open("Como_usar_esta_web-v1.pdf","link1","width=767,height=463,top=167,left=552,toolbar=yes,menubar=no,location=no,directories=no,scrollbars=yes,status=yes,resizable=yes,fullscreen=no");	
}
Agradeceré me orientéis sobre dónde puede estar el error. La cosa me funcionó bien hasta hace unas semanas, y no recuerdo haber cambiado nada que se relacione con esta parte del código. El problema es el mismo tanto si los documentos a abrir en el pop-up tienen extensión .PDF como si tienen .DOC (Word).
  #2 (permalink)  
Antiguo 15/07/2014, 05:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Pop-up a abrir desde link, pero que actúa una sola vez

Bueno, parece que resolví el problema quitando la (supuesta) dualidad consistente en que tanto la función de apertura del pop-up tenía el mismo nombre que la ventana (pop-up) que se abría.

No entiendo cómo pudo pasar esto, ya que, según dije, hasta hace unas semanas el problema no se presentaba.

Gracias de todos modos por v/atención.

(esperaré a dar el tema por solucionado por si alguno quiere agregar algo).
  #3 (permalink)  
Antiguo 15/07/2014, 09:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Pop-up a abrir desde link, pero que actúa una sola vez

Como una opción a tomar en cuenta, te aconsejo que en lugar de utilizar divs y enlaces para abrir las ventanas emergentes, lo hagas directamente con elementos como <label> o <span> pues los enlaces tienen como propósito realizar redirecciones y los divs, agrupar y organizar contenido.

Un ejemplo:

Código HTML:
Ver original
  1. <label class = "popup" data-link = "http://www.google.com">Google</label>
  2. <label class = "popup" data-link = "http://www.yahoo.com">Yahoo</label>
  3. <label class = "popup" data-link = "http://www.bing.com">Bing</label>
  4. <label class = "popup" data-link = "http://www.terra.com">Terra</label>
  5. <label class = "popup" data-link = "http://www.twitter.com">Twitter</label>

Código Javascript:
Ver original
  1. var labels = document.querySelectorAll(".popup"),
  2.     total = labels.length;
  3.  
  4. for (var i = 0; i < total; i++)
  5.     labels[i].addEventListener("click", function(){
  6.         var enlace = this.getAttribute("data-link"),
  7.             titulo = this.innerHTML;
  8.         window.open(enlace, titulo, "width=750, height=550");
  9.     }, false);

Lo que hago es simple. Primero, creo elementos <label> para cada página que deseo abrir en una ventana emergente; a estos les añado la clase "popup" para que no haya conflicto con otros elementos <label> que puedan haber en la página y también les asigno un pseudo-atributo de nombre data-link el cual contendrá la dirección de la página que deseo abrir en la ventana emergente.

En el código JS, tomo a todos los elementos con la clase "popup" y obtengo el total que estos suman, luego, con un bucle for, recorro a este conjunto de elementos y en cada iteración, les asigno una función que se ejecutará cuando se de un clic sobre cada uno de ellos. En la función, tomo el valor del pseudo-atributo data-link y el contenido del <label> para finalmente abrir la ventana emergente utilizando estos datos.



Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 16/07/2014 a las 10:41 Razón: Palabra mal escrita
  #4 (permalink)  
Antiguo 16/07/2014, 04:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Pop-up a abrir desde link, pero que actúa una sola vez

@Alexis88: parece interesante, lo tendré en cuenta. Muchas gracias.

Etiquetas: funcion, link, pop-up, vez
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 20:09.