Detect popup bloqueado en Chrome
Conozco las técnicas de JavaScript para detectar si una ventana emergente está bloqueada en otros navegadores (como se describe enla 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 "BLOQUEO POPUP" nunca se alcanza cuando el popup está bloqueado.
Por supuesto, la prueba funciona hasta cierto punto, ya que Chrome 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 manera de hacer esto sin buscar en el navegador?
Edita: Ahora he intentado hacer uso denewWin.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 realmente 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