Ich habe ein neues Fenster mit window.open() geöffnet und möchte den Verweis aus dem Aufruf von window.open() verwenden, um Inhalt in das neue Fenster zu schreiben. Ich habe versucht, HTML aus dem alten Fenster in das neue Fenster zu kopieren, indem ich myWindow.document.body.innerHTML = oldWindowDiv.innerHTML; aber das geht nicht. Irgendwelche Ideen?Wie schreibe ich Inhalt in ein anderes Browserfenster mit Javascript?
Antwort
Der Verweis von window.open()
zurückgegeben wird, ist auf das window
Objekt des Kindes Fensters. So können Sie alles tun, würden Sie normalerweise tun, hier ist ein Beispiel:
var myWindow = window.open('...')
myWindow.document.getElementById('foo').style.backgroundColor = 'red'
Beachten Sie, dass dies nur funktioniert, wenn die Eltern-Kind-Fenster die gleiche Domain haben. Andernfalls werden Sie durch die Sicherheitsbeschränkungen für Cross-Site-Scripting gestoppt.
myWindow.document.writeln(documentString)
Ich denke, das wird den Trick tun.
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()
}
Die Formularlösung, die Vijesh erwähnt, ist die Grundidee hinter der Datenübertragung zwischen Fenstern. Wenn Sie nach etwas Bibliothekscode suchen, gibt es ein großes jQuery-Plugin für genau das: WindowMsg (siehe Link unten wegen des seltsamen Stack Overflow-Bugs zur automatischen Verknüpfung).
Wie ich in meiner Antwort hier beschrieben: How can I implement the pop out functionality of chat windows in GMail? WindowMsg verwendet ein Formular in jedem Fenster und dann den window.document.form ['foo'] Hash für die Kommunikation. Wie Dan oben erwähnt, funktioniert das nur, wenn die Fenster eine Domäne teilen.
Auch wie im anderen Thread erwähnt, können Sie die JSON 2-Bibliothek von JSON.org verwenden, um JavaScript-Objekte zum Senden zwischen Fenstern auf diese Weise zu serialisieren, anstatt nur mit Strings kommunizieren zu müssen.
WindowMsg:
http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/
- 1. Browserfenster mit Javascript minimieren
- 2. Wie schreibe ich ein Formular mit Javascript mit den Werten
- 3. Wie man eine winkelige js Uhr in einem bestimmten Browserfenster auslöst, wenn ich ein anderes Browserfenster schließe
- 4. Wie schreibe ich ein Versprechen in Knoten/JavaScript
- 5. Inhalt eines Verzeichnisses in ein anderes kopieren
- 6. Wie schreibe ich JSON mit Javascript
- 7. Wie schreibe ich ein Batch-Skript, das ein Verzeichnis in ein anderes kopiert, ersetzt alte Dateien?
- 8. Browserfenster über Javascript steuern
- 9. Wie schreibe ich JavaScript-Code, um HTML-Elemente zu duplizieren?
- 10. Ich schreibe Javascript in Flex
- 11. Wie schreibe ich PHP-Code in Javascript?
- 12. Wie schreibe ich JavaScript in Eclipse
- 13. Wie schreibe/schreibe ich ein komplexes Objekt mit XmlWriter/XmlReader
- 14. Electron: Wie kommuniziere ich mit dem Browserfenster?
- 15. Wie öffne ich ein Browserfenster ohne Balken wie Adressleisten, Lesezeichenleisten usw. in Javascript?
- 16. Wie schreibe ich dieses Javascript, das ein Anfrageobjekt als JQuery
- 17. Wie erstellt man ein Browserfenster in J2ME?
- 18. Wie kann ich überprüfen, ob ein untergeordnetes Browserfenster geladen wurde?
- 19. Wie maximiere ich das Browserfenster mit WatiN?
- 20. Wie schreibe ich ein Javascript-Plugin ohne jQuery
- 21. Wie schreibe ich ein Tag?
- 22. Wie schreibe ich Inhalt in pdf benutze iText?
- 23. Wie ein anderes Fenster
- 24. Wie schreibe ich Inhalt einer Rails-Datenbank in externe Datei
- 25. Wie schreibe ich den Inhalt eines Wörterbuchs in eine Textdatei?
- 26. Wie kann ich ein Tag <br> mit JavaScript in ein anderes Tag einfügen?
- 27. Wie schreibe ich ein Filterprogramm in C?
- 28. Wie schreibe ich in F # ein?
- 29. Schreibe Muster mit Javascript
- 30. Wie schreibe ich ein Bild in eine csv/xlsx-Datei?
Es ist eigentlich die gleiche Herkunft Politik (http://www.w3.org/html/wg/html5/#same-origin), die im Grunde bedeutet, dass Sie einen Zugriff auf sein müssen Seite auf der gleichen Domain, auf dem gleichen Port und mit dem gleichen Protokoll (zB https://example.com kann nicht auf http://example.com, https://example.com:8080, etc.) schreiben – olliej
Schön, das ist gut zu wissen. –