2008-10-04 7 views

Répondre

10

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.

+0

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

+0

sympa, c'est bon à savoir. –

0
myWindow.document.writeln(documentString) 
5

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() 

    } 
0

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/

Questions connexes