Frage

Ich habe ein Popup-Fenster und in der Seite ich den folgenden Code in dem Körper habe.

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

Das Ziel ist es, dieses Popup-Fenster schließen zu haben, wenn ein Benutzer klickt auf dem Bild, Link, und eine neue Seite zu öffnen und zu richten http://www.example.com .

Es funktioniert in IE und Chrome, aber nicht in Firefox. Das Popup-Fenster schließt aber kein neues Fenster geöffnet wird.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ja, ich kann das repro - interessant. setTimeout arbeitet um es:

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

Ich kann nur, dass, sobald das Fenster schließt erraten (das geschieht, bevor der Hyperlink folgt) Firefox hält die Seite verarbeitet wird.

Edit:. Besser macht es 10ms Verzögerung - mit 1ms Chrome nicht schließt das Fenster

Andere Tipps

Die Frage tatsächlich für den Opener gelöst, aber es hat meine Frage nicht helfen (nicht wollte: die neuen Fenster unter firefox halten die gleiche Größe wie das aktuelle Pop-up).

Also habe ich folgende Lösung finden:

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

}

oder dies, wenn die ppage in einem neuen Tab öffnen sollte:

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

Wenn Sie einige Funktionen eines Elements Click-Ereignis über Javascript hinzufügen, wird diese Funktionalität vor dem Standard-Klick-Ereignis ausgeführt (in diesem Fall eine neue Seite zu öffnen), um die Möglichkeit des Abfangens und das Überschreiben der Standardereignis zu ermöglichen . Das Standardverhalten wird nur ausgeführt werden, wenn und wenn das Ereignis einen Booleschen Wert true zurückgibt.

In diesem Fall würde die zusätzliche Funktionalität zu schließen sein, das Fenster und meine Vermutung ist, dass Firefox diese zu interpretieren, wählt als „wir sind alle hier fertig“, so das Click-Ereignis nie true zurückgibt und damit die neue Seite nie wird geöffnet.

Evgeny Vorschlag eine kurze Auszeit zu verwenden würde das Click-Ereignis zuläßt true zurück, bevor das Fenster geschlossen ist, so dass das neue Fenster zu öffnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top