Popup-Fenster und das OnLoad Event

Popup-Fenster und das OnLoad Event

Da ich momentan viel mit JavaScript kämpfe, bin ich heute auf folgendes Problem gestoßen.
Wenn ich per JavaScript ein Popup-Fenster öffne und danach den Inhalt manipulieren möchte, so schlägt dies bei folgendem Beispiel ggf. fehl, weil der DOM noch nicht komplett geladen ist.

function OpenPopup() {
var win = window.open('popup.aspx', '_blank', 'width=640,height=480', false);
if (win != null) {
win.onload = new function() {
// alert('weiter..'); // Auskommentieren, dann sollte es funktionieren.
win.document.getElementById('preview-text').innerHTML = 'Mein neuer Text!';
}
}
}

Das Problem ist, wie gesagt, dass die Seite noch nicht vollständig geladen wurde, da der OnLoad-Event ausgelöst wird, sobald die Seite anfängt zu laden und nicht wenn die Seite geladen wurde.

Umgehen könnte man dieses Szenario nun z.B. wie folgt.

Wir erstellen wie gehabt ein Popup-Fenster:
window.open('popup.aspx', '_blank', 'width=640,height=480', false);

Im Popup-Fenster rufen wir eine Funktion vom opener, also dem Fenster, dass das Popup-Fenster erstellt hat auf und übergeben das Element, in welchem wir Text schreiben wollen.
$(document).ready(function() {
opener.PopupLoaded($('#popup-text'));
});

Die Methode im opener kann dann wie folgt aussehen:
function PopUpLoaded(container) {
container.html('Mein neuer Text');
}

Somit haben wir sichergestellt, das der Text wirklich erst geändert wird, wenn das Popup-Fenster komplett geladen wurde.
Diese Methode sollte in jedem Browser (ja, selbst im IE blink) funktionieren.

Hier noch ein Beispielprojekt mit JQuery
jspopup.zip

Wie löst ihr dieses Problem?
Um einen Kommentar zu hinterlassen, ist eine Anmeldung erforderlich.