Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/07/2014, 09:32
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
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