Question

J'ai une fenêtre pop-up et dans cette page j'ai le code suivant dans le corps.

<a href="http://www.example.com" target="_blank" onClick="javascript:window.close()"><img src="...something"/></a>

Le but est d'avoir cette fenêtre pop-up près quand un utilisateur clique sur le lien d'image, et d'ouvrir une nouvelle page et être adressées à http://www.example.com .

Il fonctionne dans IE et Chrome, mais pas dans Firefox. La fenêtre se ferme mais aucune nouvelle fenêtre est ouverte.

Toutes les idées?

Était-ce utile?

La solution

Oui, je peux repro cela - intéressant. setTimeout fonctionne autour:

onClick="javascript: setTimeout(window.close, 10);"

Je ne peux deviner qu'une fois que la fenêtre se ferme (ce qui se produit avant que le lien hypertexte est suivi) Firefox arrête le traitement de cette page.

Edit:. Mieux faire 10ms retard - avec 1ms Chrome ne fermez pas la fenêtre

Autres conseils

La question est en fait résolu pour le premier match, mais il n'a pas aidé ma question (non voulu: les nouvelles fenêtres sous Firefox conservent la même taille que la fenêtre actuelle).

Je trouve la solution suivante:

function whenClicked() 
{
    window.close();
    opener.location.href = "http://www.example.com";

}

ou ceci si l'ppage devrait ouvrir dans un nouvel onglet:

function whenClicked() 
{
    window.close();
    opener.open(http://www.example.com, '_blank');
}

Lorsque vous ajoutez des fonctionnalités à l'événement click d'un élément via javascript, cette fonctionnalité est exécutée avant l'événement de clic par défaut (dans ce cas, l'ouverture d'une nouvelle page), afin de permettre la possibilité d'intercepter et en remplaçant l'événement par défaut . Le comportement par défaut n'exécutera quand et si l'événement retourne une valeur booléenne true.

Dans ce cas, la fonctionnalité supplémentaire serait de fermer la fenêtre et je suppose que Firefox choisit d'interpréter cela comme « nous sommes tous fait ici », de sorte que l'événement click ne retourne jamais vrai, et donc la nouvelle page ne obtient ouvert.

La suggestion de Evgeny d'utiliser un court délai permettrait à l'événement click pour revenir vrai avant que la fenêtre est fermée, ce qui permet ainsi la nouvelle fenêtre pour l'ouvrir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top