Détecter bloqué popup dans Chrome

Je suis conscient de javascript techniques pour détecter si une fenêtre est bloquée dans les autres navigateurs (comme décrit dans la réponse à cette question). Voici le test de base:

var newWin = window.open(url);

if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
    //POPUP BLOCKED
}

Mais cela ne fonctionne pas dans google Chrome. Le "POPUP BLOQUÉ" l'article n'est jamais atteint lorsque le pop-up est bloqué.

Bien sûr, le test est de travailler à une certaine mesure, étant donné que Chrome ne fait pas de bloquer les pop-up, mais ouvre dans une petite fenêtre réduite dans le coin inférieur droit de listes de "bloqué" popups.

Ce que je voudrais faire est d'être en mesure de dire si le pop-up a été bloqué par google Chrome bloqueur de pop-ups. J'essaie d'éviter la détection de browser en faveur de la détection de fonctionnalité. Est-il un moyen de le faire sans browser sniffing?

Modifier: maintenant, j'ai essayé de faire usage de newWin.outerHeight, newWin.left, et d'autres propriétés similaires à accomplir cela. Google Chrome retourne toutes les position et la hauteur des valeurs que 0 lorsque le pop-up est bloqué.

Malheureusement, il renvoie également les mêmes valeurs, même si le pop-up est réellement ouvert pour une durée indéterminée. Après une certaine période magique (un couple de secondes dans mes tests), l'emplacement et la taille de l'information est retourné en tant que valeurs correctes. En d'autres termes, je ne suis toujours pas plus avancés de ce phénomène. Toute aide serait appréciée.

Yoav, l'emplacement indique le même, peu importe si le pop up est bloqué ou non. Quelqu'un d'autre a une réponse qui n'implique pas l'utilisateur d'attendre de 3,5 secondes?
Dernières solutions de InvisibleBacon et Andy ne fonctionnent pas dans google Chrome, 10): "échec pour google chrome" message s'affiche même si le pop-up a été affichée avec succès. Une idée?
Je pense qu'une nouvelle question afin que certaines de ces solutions semblent avoir travaillé avec les premières versions de google Chrome.
Bailey je suis d'accord, mais juste pour être clair, certains d'entre eux ne travaillent dans la version actuelle de Chrome (19). Andrew, l'idée originale de l'aide outerHeight (ou screenX, comme d'autres l'ont suggéré) fonctionne très bien pour moi, combiné avec le setTimeout approche. Mais, oui, en essayant de donner un sens à toutes ces réponses était vraiment déroutant jusqu'à ce que j'ai fait mes propres tests.
Essayez ceci: stackoverflow.com/a/31299484/1927014

OriginalL'auteur Andrew Ensley | 2009-03-20