Je travaille sur un petit projet en JavaScript/jQuery.Créer une nouvelle fenêtre en utilisant jquery
Pour afficher les résultats d'un calcul fait en javascript, je voudrais ouvrir une nouvelle fenêtre avec un contenu prédéfini et modifier ce contenu pour afficher les résultats: Im en utilisant le code comme ceci:
var resultwindow = window.open('result.html')
var doc = $('body', resultwindow.document);
doc.append("<p>Result</p>")
Cela ne fonctionne pas car le document de résultat n'est pas encore chargé lorsque j'ajoute le contenu, il est donc remplacé par le contenu de 'result.html'.
J'ai aussi essayé
$(resultwindow.document).ready(function() {
// ... Fill result document here
})
et
$(resultwindow.document).load(function() {
// ... Fill result document here
})
mais ready()
ne fonctionne que sur le document en cours (il est appelé immédiatement, si le document en cours est déjà chargé), et ne le fait pas load
être appelé du tout. Peut-être que quelqu'un peut me diriger vers la bonne direction. Merci d'avance!
EDIT:
J'ai finalement résolu ce problème en créant le nouveau document « à la main » en Javascript comme:
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('<html><head>' +
'<link rel="stylesheet" type="text/css" href="style.cs"/></head>' +
+'<body></body></html>');
// use d to manipulate DOM of new document and display results
Si je devais faire la même chose aujourd'hui (deux ans d'expérience plus tard), j'utiliserais une bibliothèque de templates Javascript comme Handlebars pour maintenir un template et le compiler en javscript.
Martin avez-vous eu ce travail? J'ai un problème similaire. – Shaunak
@Shaunak J'ai posté ma solution d'il y a deux ans comme éditer à la question, a également mentionné comment je le résoudrais aujourd'hui ... hth. – MartinStettner