2012-04-10 13 views
0

wenn der Titel nicht klar ist mich wieder beschreiben lassen, wenn eine Seite a.html hat, die unterwie können zwei Fenster lassen (ein Fenster von einem anderen geöffnet) kommunizieren

window.open("http://www.baidu.com/", "_self", ""); 
einen Javascript-Code hat

und wie können das Originalfenster und das neu geöffnete Fenster kommunizieren?

dank

+0

eine schnelle Google wird schneller sein. Ich habe dieses sehr oft gesehen. – Joseph

+0

@Joseph du meinst google ist schnell als baidu ?? – SKing7

Antwort

1

Das neue Dokument wird eine opener Eigenschaft hat, dass das Fenster verweist, aus dem es geöffnet wurde. Dies geht verloren, wenn der Browser zu einem neuen Dokument navigiert wird. Der Rückgabewert von open ist eine Referenz auf das neue Fenster (Sie müssen es also einer Variablen zuweisen).

Die same origin policy gilt wie gewohnt.

+0

durch Testen ist das Attribut openner von dem, das von "_self" geöffnet wurde, null. – SKing7

+0

so können wir das Ergebnis nicht bekommen ??? – SKing7

+0

Ihre Frage ist in sich widersprüchlich. Der Titel fragt nach zwei Fenstern, die kommunizieren, der Code verwendet das vorhandene Fenster erneut. Zwei Fenster können nicht kommunizieren, wenn nicht zwei Fenster vorhanden sind. – Quentin

0

Unter der Annahme, sie auf der gleichen Domäne sind, und Sie tatsächlich ein neues Fenster öffnen („_self“ ist keine gute Idee, ein neues Fenster zu öffnen) Sie

var w = window.open(....)

tun können

w.document....

und von Kind Fenster

opener.someFunction()

oder

opener.someVar = ...

Wenn sie nicht sind, müssen Sie Cross-Domain-Scripting

+0

durch Testen, das Attribut openner von, die von "_self" geöffnet ist Null ... – SKing7

+0

Ah, bemerkte nicht die _self. Das öffnet dann kein neues Fenster, wenn der Browser den Code zulässt – mplungjan

Verwandte Themen