Hi,
» ***WER SICH NICHT MIT VRML AUSKENNT***
<meld>
kann mir als Beispiel auch erklähren, wie es möglich ist, zwei Browserfenster miteinander kommunizieren zu lassen.
gehen wir mal davon aus, dass zwei browserfenster genau wie zwei frames eben nur "window" objekte sind. Gehen wir fernen davon aus, dass es keine Sicherheitsbeschränkungen wie anderes Protokolle, unterschiedliche Domains etc. zwischen diesen Fenstern gibt, sonst klappt das sowieso nicht. Gleiches betrifft auch ggf. die Herkunft der VRML-Datei und dem sie umgebenden HTML-Dokument (Container).
An so ein "window" objekt kannst du allerlei informationen "ranhängen", auch Funktionen.
Wenn nicht "sowieso schon möglich" (hatte mal eine Situation wo's ging, mag aber Zufall oder auch schlicht ein Fehler gewesen sein oder ich hab was durchheinander gebracht<g>), kannst du z.b über die .opener Eigenschaft des zweiten Fensters die Funktionen und Egenschaften, die dort definiert wurden per
window.opener.funktionsname()
window.opener.eigenschaft
bzw. allgemein gesprochen
windowObject_Variable.funktionsname()
windowObject_Variable.eigenschaft
aufrufen und ansprechen, ansonsten wie folgt:
(und das ging eigentlich immer)
datei1.html ("browserfenster 1")
-----------
<html>
<head>
<script>
function sagwas(gaga) {
alert(gaga);
}
// funktion an das "window" dranhängen, welches die js läd
// z.B."browserfenster 1"
window.sagMama=sagwas;
babywin = window.open("datei2.html", "babywin");
// als Beispiel eine neue Eigenschaft
window.neueProppy = "Hallo mein Kind"
</script>
</head>
<body>
Mama fenster
</body>
datei2.html (babywin in "browserfenster 2"):
-----------
<html>
<head>
<script>
function sagmama() {
window.opener.sagMama("Externe Funktion:\n\tMaaammaa!!!");
self.focus();
alert("User-Property:\n\twindow.opener.neueProppy);
}
</script>
</head>
<body onload="sagmama()">
Baby fenster
</body>
Das obige hab ich mal in NS6 getestet, sollte aber (da "reines" JavaScript) auch in IE4+ und in NS4 laufen.
Das Prinzip sollte damit wohl klar sein.
Ob Du von der VRML-Datei grundsätzlich auf Objekte des "Container-Fensters" zugreifen kannst weiss ich nicht. Wenn du aber irgendwie auf das "JavaScript window Objekt" Zugriff hast, spricht eigentlich nichts dagegen.
Da die VRML in einem PlugIn/ActiveX rennt müsstest du ggf. über irgendeine "document", "window" oder "parent"-Eigenschaft von diesem PlugIn an die Inhalte der Hauptdatei und dem entsprechenden window-Objekt gelangen. Dann "sollte" es funktionieren.
Viel Spaß
CirTap