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<label class = "popup" data-link = "http://www.google.com">Google
</label> <label class = "popup" data-link = "http://www.yahoo.com">Yahoo
</label> <label class = "popup" data-link = "http://www.bing.com">Bing
</label> <label class = "popup" data-link = "http://www.terra.com">Terra
</label> <label class = "popup" data-link = "http://www.twitter.com">Twitter
</label>
Código Javascript
:
Ver originalvar labels = document.querySelectorAll(".popup"),
total = labels.length;
for (var i = 0; i < total; i++)
labels[i].addEventListener("click", function(){
var enlace = this.getAttribute("data-link"),
titulo = this.innerHTML;
window.open(enlace, titulo, "width=750, height=550");
}, 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