getElementsByName() und iFrame (syntax ?!)
cy-man
- javascript
0 Thomas Meinike0 cy-man0 cy-man
0 Sorgenkind Mech
hi!
ich habe unten zu einem prob gepostet. Sorgenkind Mech hat mir auch ein lösungsvorschlag gegeben, nur funktioniert er irgendwie nicht richtig.
ich habe einen iframe, der heißt "rechts". in diesem iframe wird eine html geladen, die ein verstecktes feld names "ziel" und einen wert (value="zuvieldienst2.htm").
sieht so aus:
<input type="hidden" name="ziel" value="zuvieldienst2.htm">
ausserhalb des iframes, in der html wo er definiert ist, ist folgendes script im <head>-tag:
<script language="JavaScript">
function gehezu(link) {
parent.rechts.document.getElementByName("ziel").value=link;
}
</script>
mit einem link (dieser ist nicht im iframe!) versuche ich nun, diese seite (zuvieldienst2.htm) im iframe zu laden.
<a href="javascript:gehezu(link)" target="rechts">nächste seite</a>
geht aber nicht. was mache ich falsch vom syntax her?
danke schon ma ....
cy
Hallo,
parent.rechts.document.getElementByName("ziel").value=link;
Die Methode getElementsByName() (Elements, nicht Element!) gibt die Collection (also ein Array) der mit einem bestimmten Wert des name-Attributes benannten Elemente zurueck, also muss der Zugriff ueber den jeweiligen Index erfolgen:
parent.rechts.document.getElementsByName("ziel")[0].value=link;
bzw. DOM-konformer:
parent.rechts.document.getElementsByName("ziel").item(0).value=link;
Der Index laeuft von 0 bis document.getElementsByName("...").length-1.
Mehr dazu unter http://www.styleassistant.de/tips/tip45.htm.
MfG, Thomas
hi!
danke für den tip: meine javascript debuger bringt jetzt nur noch einen fehler:
http://localhost/
Javascript URL thread: "javascript:gehezu(link)"
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: No such variable 'link'
Backtrace: In unknown script gehezu(link);
hat noch jemand 'ne ahnung was da los ist?!
cy
mhh, entweder sind die experten heute nicht da oder es hat keiner lust zu antworten ...
jedenfalls geht das auslesen der variable aus dem frame nun:
<script language="JavaScript">
function gehezu() {
var link=parent.rechts.document.test.ziel.value;
}
</script>
wenn ich einen button mit dem verweis: alert(link) mache zeigt er mit in einer box die variable aus dem frame an. schön ...
mein problem ist nur noch, wie bekomme ich das als link hin. wenn ich <a href="javascript:gehezu('link')" target="rechts">test</a> mache, gibt es einen fehler.
wo liegt mein problem?
regz cy
Moin!
wenn ich einen button mit dem verweis: alert(link) mache zeigt er mit in einer box die variable aus dem frame an. schön ...
mein problem ist nur noch, wie bekomme ich das als link hin. wenn ich <a href="javascript:gehezu('link')" target="rechts">test</a> mache, gibt es einen fehler.
Warum hast du überhaupt diese komplizierte Konstruktion mit dem Formularfeld etc.?
Üblicherweise gibst du dem IFrame einen Namen. Und genau diesen Namen kannst du im Link als target angeben. Und dann gibst du einfach noch das Linkziel als URL an, und fertig ist.
wo liegt mein problem?
Ich weiß es nicht. Vermutlich suchst du location.href='linkziel' oder so.
- Sven Rautenberg
hi!
Warum hast du überhaupt diese komplizierte Konstruktion mit dem Formularfeld etc.?
naja, weil ich jeder seite im iframe eine nächste seite zuweisen will. und am besten geht das, wenn ich in ein verstecktes feld den namen der nächsten htm als value="%seite%" rein schreibe.
Ich weiß es nicht. Vermutlich suchst du location.href='linkziel' oder so.
ich will ja nur, dass wenn ich einen link mache, er den aus der variable des javascript nimmt:
<a href="%variable link aus dem javascript">link</a>
oder
<a href="javascript:gehezu('link')">link</a>
das geht aber nicht so bei mir!!
hier nochmal das script:
<script language="JavaScript">
function gehezu() {
var link=parent.rechts.document.test.ziel.value;
alert(link);
}
</script>
die alert box zeigt mir die richtige variable an, das geht also! und nun als <a href=" ... dings .... BITTE!!!
cy
Moin!
ich will ja nur, dass wenn ich einen link mache, er den aus der variable des javascript nimmt:
<a href="%variable link aus dem javascript">link</a>
oder
<a href="javascript:gehezu('link')">link</a>
Du willst http://selfhtml.teamone.de/javascript/objekte/location.htm#href.
Den Wert aus dem Feld an location.href (des richtigen Fensters) zuweisen.
- Sven Rautenberg
hallo!
hee genau das isses ... funktioniert gut, nur ist noch das problem mit dem target. ohne geht es 1A SUPER EDEL KLASSR - wenn ich dann aber <a href="javascript:Wunsch()" target="frame">Wunschverweis</a> schreibe geht es nicht mehr.
gibt's da auch noch 'ne lösung?! *hoff*
cy
ALLES KLAR, habe mal versucht einfach statt window. den frame hinzuschreiben und es geht!! DANKE!!!
ich bin echt froh, dass es leute gibt wie dich !!!
hi!
hey!
richtig lesen:
ich habe unten zu einem prob gepostet. Sorgenkind Mech hat mir auch ein lösungsvorschlag gegeben, nur funktioniert er irgendwie nicht richtig.
ich hab es selbst ausprobiert
ich habe einen iframe, der heißt "rechts". in diesem iframe wird eine html geladen, die ein verstecktes feld names "ziel" und einen wert (value="zuvieldienst2.htm").
jup
sieht so aus:
<input type="hidden" name="ziel" value="zuvieldienst2.htm">
auch ok
ausserhalb des iframes, in der html wo er definiert ist, ist folgendes script im <head>-tag:
<script language="JavaScript">
function gehezu(link) {
parent.rechts.document.getElementByName("ziel").value=link;
}
</script>
1. hab ich nicht geschrieben, dass die funktion eine variable verlangt, welche in deinem falle "link" wäre
zweitens habe ich geschrieben parent.frames.rechts...
übrigens würdest du damit dem verborgenen feld einen wert zuweisen, glaube ich
mit einem link (dieser ist nicht im iframe!) versuche ich nun, diese seite (zuvieldienst2.htm) im iframe zu laden.
<a href="javascript:gehezu(link)" target="rechts">nächste seite</a>
2. schrieb ich, dass du KEIN target angeben darfst
geht aber nicht. was mache ich falsch vom syntax her?
danke schon ma ....
cy
anz einfach, richtig lesen .... hab mir so viel mühe gegeben ;(
naja, hoffe du hast es mittlerweile
gruß