Variable aus einem Frame in anderes übertragen
daff
- javascript
0 Der Martin
0 daff0 Der Martin
0 Ashura
Hallo
ich bin noch ein ziemliches JS-Noob. Ich kenn mich zwar rel gut mit php aus aber JS is für mich noch neuland. zu meiner frage:
wie kann ich eine variable aus einem frame in ein anderes frame bekommen ? ich hab mich mal n bissl durch selfhtml gelesen und dann herausgefunden, dass das z.b. mit parent.framename.id(3) möglich ist. da geb ich aber ner funktion ne variable mit, was ich aber garnicht will und was auch garnicht geht (zumindest bei dem was ich bisher probiert hab). ich will einfach nur, dass ich die variable, die ich in dem einen frame erzeugt hab in dem anderen frame weiter nutzen kann. Ist das möglich ? oder muss ich da doch mit php ran (was ich in dem fall eigentlich nicht wollte)
thx schonmal
daff
Hallo,
ich bin noch ein ziemliches JS-Noob.
ist doch keine Schande! ;-)
Ich kenn mich zwar rel gut mit php aus aber JS is für mich noch neuland.
Okay, aber dann sind dir wenigstens die Grundlagen der Programmierung vertraut.
[...] dass das z.b. mit parent.framename.id(3) möglich ist.
ich will einfach nur, dass ich die variable, die ich in dem einen frame erzeugt hab in dem anderen frame weiter nutzen kann.
Genauso wie der Zugriff auf Funktionen in einem anderen Fenster/Frame ist auch der Zugriff auf Variablen möglich: Über parent.framename.varname.
Voraussetzung ist, dass das Dokument im anderen Fenster/Frame von derselben Domain stammt, ansonsten wird der Zugriff verweigert. Das ist eine Sicherheitsfunktion von Javascript (Same Origin Policy).
So long,
Martin
hallo
cool dass du so schnell antworten konntest. leider geht es bei mir immernoch nicht. hier mal meine 3 dateien:
index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<frameset cols="400,*" frameborder="yes">
<frame src="links.html" name="links" id="links" title="links" />
<frame src="content.html" name="content" id="content" title="content" />
</frameset>
<noframes><body>
</body>
</noframes></html>
---------------------------------------------
links.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<script type="text/javascript">
var x = 44;
document.write(x);
parent.content.x;
</script>
</body>
</html>
--------------------------------------------
content.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<script type="text/javascript">
document.write(x);
</script>
</body>
</html>
ich weiß echt ne was ich falsch mache.
daff
n'Abend!
<frameset cols="400,*" frameborder="yes">
<frame src="links.html" name="links" id="links" title="links" />
<frame src="content.html" name="content" id="content" title="content" />
</frameset>
Nur zwei Frames, da bleibt es noch überschaubar.
links.html
<script type="text/javascript">
var x = 44;
document.write(x);
Bis hierher sollte es ja ohne weiteres funktionieren.
parent.content.x;
Was ist das für 'ne Anweisung?
"Lies die Variable x aus dem Frame mit dem Namen content und tu nichts damit".
Erstens ist in content keine Variable x deklariert, zweitens hätte die Anweisung keine Auswirkung, selbst wenn es die Variable gäbe.
content.html
<script type="text/javascript">
document.write(x);
Moment, das x war doch im anderen Frame definiert! Hier müsstest du mit document.write(parent.links.x); darauf zugreifen. Abgesehen davon, dass es da einen Namenskonflikt mit dem vordefinierten Array links[] gibt. Ändere den Namen lieber, das kann sonst ein ziemliches Durcheinander geben.
Ciao,
Martin
Hallo Martin.
Abgesehen davon, dass es da einen Namenskonflikt mit dem vordefinierten Array links[] gibt. Ändere den Namen lieber, das kann sonst ein ziemliches Durcheinander geben.
Eigentlich nicht, da zwischen der selbstgesetzten Variable window.links und der vordeklarierten Kollektion (window.)document.links noch ein Unterschied besteht.
Einen schönen Samstag noch.
Gruß, Ashura