J'ai ouvert une nouvelle fenêtre avec window.open() et je veux utiliser la référence de l'appel window.open() pour écrire le contenu dans la nouvelle fenêtre. J'ai essayé de copier le HTML de l'ancienne fenêtre vers la nouvelle fenêtre en utilisant myWindow.document.body.innerHTML = oldWindowDiv.innerHTML; mais ça ne marche pas. Des idées?Comment écrire du contenu dans une autre fenêtre du navigateur en utilisant Javascript?
Répondre
La référence retournée par window.open()
est à l'objet window
de la fenêtre enfant. Ainsi, vous pouvez faire tout ce que vous le feriez normalement, voici un exemple:
var myWindow = window.open('...')
myWindow.document.getElementById('foo').style.backgroundColor = 'red'
Gardez à l'esprit que cela ne fonctionnera que si les fenêtres parents et enfants ont le même domaine. Sinon, les restrictions de sécurité des scripts inter-sites vous arrêteront.
myWindow.document.writeln(documentString)
Je pense que cela fera l'affaire.
function popUp(){
var newWindow = window.open("","Test","width=300,height=300,scrollbars=1,resizable=1")
//read text from textbox placed in parent window
var text = document.form.input.value
var html = "<html><head></head><body>Hello, <b>"+ text +"</b>."
html += "How are you today?</body></html>"
newWindow .document.open()
newWindow .document.write(html)
newWindow .document.close()
}
La solution de formulaire mentionnée par Vijesh est l'idée de base de la communication des données entre les fenêtres. Si vous cherchez un code de bibliothèque, il y a un plugin jQuery pour cela: WindowMsg (voir le lien en bas à cause d'un bug bizarre de Stack Overflow).
Comme je l'ai décrit dans ma réponse ici: How can I implement the pop out functionality of chat windows in GMail? WindowMsg utilise un formulaire dans chaque fenêtre, puis le hachage window.document.form ['foo'] pour la communication. Comme Dan le mentionne plus haut, cela ne fonctionne que si la fenêtre partage un domaine.
également comme mentionné dans l'autre thread, vous pouvez utiliser le JSON 2 lib de JSON.org sérialiser javascript objets pour envoyer entre les fenêtres de cette manière plutôt que d'avoir à communiquer en utilisant uniquement des chaînes.
WindowMsg:
http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/
- 1. Comment ouvrir une nouvelle fenêtre du navigateur
- 2. Comment obtenir du contenu iFrame src en utilisant javascript?
- 3. Puis-je transmettre une variable JavaScript à une autre fenêtre du navigateur?
- 4. Déterminer la position de la fenêtre du navigateur en JavaScript?
- 5. Remplacer le contenu du navigateur par une nouvelle URL
- 6. Réduire la fenêtre du navigateur à l'aide de javascript
- 7. javascript pour vérifier quand la fenêtre du navigateur est proche
- 8. Comment ouvrir une autre fenêtre
- 9. comment afficher le message d'actualisation dans la fenêtre du navigateur
- 10. Comment remplacer du texte en utilisant JavaScript?
- 11. Comment ancrer Firebug dans la fenêtre du navigateur?
- 12. Écrire du contenu html dans un courrier en utilisant un flux
- 13. Copie du contenu du dossier en utilisant VBScript
- 14. Création d'un pied de page CSS soit en bas de la fenêtre du navigateur, soit en bas du contenu
- 15. Ouvrir la fenêtre Navigateur du programme Java
- 16. Comment obtenir la taille de la fenêtre du navigateur en utilisant Prototype.js?
- 17. Accéder au contenu à écrire dans le navigateur dans ASP.NET
- 18. Hauteur du contenu dans une div
- 19. Rendu de contenu de boîte de texte dans une nouvelle fenêtre en utilisant javascript
- 20. Comment accéder au contenu du message dans la fenêtre de composition du message de Thunderbird?
- 21. Comment écrire des légendes en utilisant du texte restructuré?
- 22. Vérifier les onglets du navigateur par JavaScript?
- 23. Comment obtenir du contenu href "brut" en JavaScript
- 24. Créer une autre fenêtre à partir du code?
- 25. Ouvrir une fenêtre modale à la fermeture du navigateur?
- 26. Compatibilité du navigateur dans jQuery
- 27. Redimensionner par programme la fenêtre du navigateur dans GWT
- 28. recherche du texte dans un autre texte et le mettre en évidence en utilisant javascript
- 29. Comment faire en sorte que la fenêtre du navigateur suive en douceur un élément animé?
- 30. jQuery Ajax chargement du contenu d'une autre page du site
Il est en fait la même politique d'origine (http://www.w3.org/html/wg/html5/#same-origin) ce qui signifie que, fondamentalement, vous devez être accédez à un page sur le même domaine, sur le même port, et avec le même protocole (par exemple https://example.com ne peut pas écrire sur http://example.com, https://example.com:8080, etc) – olliej
sympa, c'est bon à savoir. –