Soy consciente de las técnicas de JavaScript para detectar si una ventana emergente está bloqueada en otros navegadores (como se describe en la respuesta a esta pregunta ). Aquí está la prueba básica:
var newWin = window.open(url);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
//POPUP BLOCKED
}
Pero esto no funciona en Chrome. La sección "POPUP BLOCKED" nunca se alcanza cuando la ventana emergente está bloqueada.
Por supuesto, la prueba está funcionando hasta cierto punto, ya que Chrome en realidad no bloquea la ventana emergente, sino que la abre en una pequeña ventana minimizada en la esquina inferior derecha que enumera las ventanas emergentes "bloqueadas".
Lo que me gustaría hacer es saber si la ventana emergente fue bloqueada por el bloqueador de ventanas emergentes de Chrome. Intento evitar el rastreo del navegador a favor de la detección de funciones. ¿Hay alguna forma de hacer esto sin que el navegador rastree?
Editar : ahora he intentado hacer uso de newWin.outerHeight
, newWin.left
y otras propiedades similares para lograr esto. Google Chrome devuelve todos los valores de posición y altura como 0 cuando la ventana emergente está bloqueada.
Desafortunadamente, también devuelve los mismos valores incluso si la ventana emergente se abre durante un período de tiempo desconocido. Después de un período mágico (un par de segundos en mis pruebas), la información de ubicación y tamaño se devuelve como los valores correctos. En otras palabras, todavía no estoy más cerca de resolver esto. Cualquier ayuda sería apreciada.