Ich arbeite an einem kleinen Projekt in JavaScript/jQuery.
Um Ergebnisse einer in JavaScript durchgeführten Berechnung anzuzeigen, möchte ich ein neues Fenster mit vordefiniertem Inhalt öffnen und diesen Inhalt ändern, um die Ergebnisse anzuzeigen: Ich verwende Code wie diesen:
var resultwindow = window.open('result.html')
var doc = $('body', resultwindow.document);
doc.append("Ergebnis")
Dies funktioniert nicht, da das Ergebnisdokument noch nicht geladen ist, wenn ich den Inhalt einfüge, wird er also mit dem Inhalt von 'result.html' überschrieben.
Ich habe auch versucht
$(resultwindow.document).ready(function() {
// ... Ergebnisdokument hier ausfüllen
})
und
$(resultwindow.document).load(function() {
// ... Ergebnisdokument hier ausfüllen
})
aber ready()
funktioniert nur im aktuellen Dokument (es wird sofort aufgerufen, wenn das aktuelle Dokument bereits geladen ist), und load
wird überhaupt nicht aufgerufen.
Vielleicht kann mich jemand in die richtige Richtung weisen. Vielen Dank im Voraus!
BEARBEITEN:
Ich habe dies schließlich gelöst, indem ich das neue Dokument "manuell" in Javascript erstellt habe, wie:
w = window.open('','newwinow','width=800,height=600,menubar=1,status=0,scrollbars=1,resizable=1);
d = w.document.open("text/html","replace");
d.writeln('' +
'' +
+'');
// Verwenden Sie d, um das DOM des neuen Dokuments zu manipulieren und Ergebnisse anzuzeigen
Wenn ich heute dasselbe tun würde (zwei Jahre Erfahrung später), würde ich eine Javascript-Template-Bibliothek wie Handlebars verwenden, um ein Template zu pflegen und es zu JavaScript zu kompilieren.