Autor |
Nachricht |
thE_iNivNciblE
Threadersteller
Dabei seit: 03.08.2005
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 19.10.2005 10:06
Titel IFRAME Problem |
|
|
Hallo Liebe Gemeinde,
auf ein Neues:
Code: | <iframe id="iframe_ort_von" name="OrtVon" src="iframe_Ort_von.php?start=1&txtOrt_von_input=<?= $txtOrt_von_input ?>" frameborder="0" scrolling="no" height="18" width="100%"></iframe> |
Dies ist die Syntax vom eingebetteten IFRAME auf der Hauptseite.
Code: | alert(OrtVon.document.Ort_Senden.getElementsByTagName('txtOrt_von_input').value); |
so lautet meine Syntax in Javascript um ein Iframe anzusprechen welches ein Textfeld mit dem namen "txtOrt_von_input" beeinhaltet.
Zusatz: das <form> indem sich das Textfeld "txtOrt_von_input" befindet heißt "Ort_Senden"
Es will einfach nich klappen, hat wer noch andere möglichkeiten das Iframe anzusprechen ?
geht nicht im IE auch nich im FF (Firefox).
MfG thE_iNviNciblE
Zuletzt bearbeitet von thE_iNivNciblE am Mi 19.10.2005 10:07, insgesamt 1-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Mi 19.10.2005 10:39
Titel
|
|
|
getElementsByTagName erfordert aber dann auch einen Tagnamen. Ein Tagname wäre sowas wie div, span, p oder h1. HTML kennt kein Tag das <txtOrt_von_input> heißt.
Wenn du einem Elemente eine id verpasst hast, um ein einzelnes Elemente eindeutig ansprechen zu können, dann mußt du getElementById() verwenden. Das ist es sicher, was Du suchst.
|
|
|
|
|
Anzeige
|
|
|
thE_iNivNciblE
Threadersteller
Dabei seit: 03.08.2005
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 19.10.2005 11:10
Titel
|
|
|
rob hat geschrieben: | getElementsByTagName erfordert aber dann auch einen Tagnamen. Ein Tagname wäre sowas wie div, span, p oder h1. HTML kennt kein Tag das <txtOrt_von_input> heißt.
Wenn du einem Elemente eine id verpasst hast, um ein einzelnes Elemente eindeutig ansprechen zu können, dann mußt du getElementById() verwenden. Das ist es sicher, was Du suchst. |
Hallo danke für deine Idee, aber über getElementById() hab ich es auch schon versucht.
ich hab nun mal das fragment drangehängt wie die Textbox aussieht.
Code: | <input style="height:16px;" onClick="javascript:zurueck();" onFocus="javascript:this.select();" name="txtOrt_von_input" onBlur="this.form.submit();" type="text" id="txtOrt_von_input" size="24" value="<?php echo $txtOrt_von_input; ?>"> |
Code: | alert(OrtVon.document.Ort_Senden.getElementById('txtOrt_von_input').value); |
schlägt leider auch fehl.
hab mich nochmals vergewissert das der "<form -Tag>" auch wirklich "Ort_Senden" heißt nicht etwa "Ort_senden"...
hat noch wer eine idee?
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Mi 19.10.2005 13:02
Titel
|
|
|
Was soll denn das hier?
onClick="javascript:zurueck();"
Das gleich gilt auch für das javascript: bei den anderen Eventhandlern...
Weg damit. Das brauchst du nur wenn du in Anchor-Tags eine JS-Funktion "anspringen" willst.
Tja und ansonsten schmeisst du irgendwie wild mit names und ids rum, wie mir scheint...
Du kannst dein Formular doch auch so ansprechen:
parent.NameDesFrames.Formularname.Eigenschaft/Methode();
Dein Problem ist vermutlich, daß du versuchst, ein Frame über's DOM anzusprechen. Frame ist eine Variante des window-Objektes und das DOM kann eigentlich erst ab dem Unterobjekt document zum Einsatz kommen.
Zuletzt bearbeitet von rob am Mi 19.10.2005 13:03, insgesamt 1-mal bearbeitet
|
|
|
|
|
thE_iNivNciblE
Threadersteller
Dabei seit: 03.08.2005
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 19.10.2005 13:22
Titel
|
|
|
hi rob,
die Gesichte mit OnClick = hat einen anderen hintergrund, der für dieses Problem auch nicht weiter erforderlich ist.
rob hat geschrieben: | Was soll denn das hier?
Du kannst dein Formular doch auch so ansprechen:
parent.NameDesFrames.Formularname.Eigenschaft/Methode();
Dein Problem ist vermutlich, daß du versuchst, ein Frame über's DOM anzusprechen. Frame ist eine Variante des window-Objektes und das DOM kann eigentlich erst ab dem Unterobjekt document zum Einsatz kommen. |
parent. => hatte ich auch schon probiert (ist ja ein Inline-Frame)
.NameDesFrames => OrtVon
.Forumlarname => Ort_Senden
.Eigenschaft => damit meinst du das Objekt oder ? (txtOrt_von_input)
Code: | alert(parent.OrtVon.getElementsByTagName('txtOrt_von_input').value); |
Code: | alert(window.OrtVon.getElementsByTagName('txtOrt_von_input').value); |
Code: | alert(parent.OrtVon.document.getElementsByTagName('txtOrt_von_input').value); |
>> bekomme es nicht auf die reihe, kannst du nen vorschlag machen, danke ?!
bin ein wenig verzweifelt
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Do 20.10.2005 11:09
Titel
|
|
|
Zitat: | die Gesichte mit OnClick = hat einen anderen hintergrund, der für dieses Problem auch nicht weiter erforderlich ist. |
Das ändert aber nichts daran, daß es schlicht und einfach falsch ist, was du da gemacht hast.
Onclick ist ein Eventhandler. Da darf kein javascript: folgen. Das kannst du nur in einem Anchor-Tag verwenden, sprich:
<a href="javascript:funktion();">Link</a>. Nach einem Eventhandler ist es völlig ausreichend, einfach den Funktionsaufruf zu schreiben.
Tja und ansonsten kann dein Code auch nicht funktionieren. Ich hab dir doch vorhin schon geschrieben, was getElementsByTagName macht.
Damit sprichst du bestimmte Tags an. Mit getElementsByTagName('div') würdest du alle <div>irgendwas</div> ansprechen.
Tja und du versuchst halt alle Tags, die txtOrt_von_input heissen anzusprechen.
Hast du in deinem Code sowas: <txtOrt_von_input>blabla</txtOrt_von_input> ?
Nein? Dann kann das auch nichts werden...
Zuletzt bearbeitet von rob am Do 20.10.2005 11:10, insgesamt 1-mal bearbeitet
|
|
|
|
|
thE_iNivNciblE
Threadersteller
Dabei seit: 03.08.2005
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 20.10.2005 11:44
Titel
|
|
|
Hallo rob,
nochmal zum Onclick, das ist nicht das problem es funktioniert, ob ich nun expliziet drauf hinweise das beim OnClick Javascript folgt oder nicht!
Code: |
window.opener.document.getElementById('cmdCarrier_selektion').style.color ='#000000';
window.opener.document.getElementById('cmdCarrier_selektion').value ='Carrier selektieren';
|
demonstriert wie man mittels JSSS sehrwohl solche objekte ansprechen kann (möchte dich jetzt nich verwirren), hierbei ist es egal ob ich das objekt via Name oder ID anspreche.
-------------
noch einmal zum problem
mir geht es darum zu wissen, wie ich das IFRAME ansteuer über "parent....." etc...
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Do 20.10.2005 12:55
Titel
|
|
|
Zitat: | nochmal zum Onclick, das ist nicht das problem es funktioniert |
ja. ich weiß, das das nicht dein problem ist... ich würd's aber trotzdem korrigieren, weil es eben einfach falsch ist und deswegen nicht überall funktioniert.
aber war ja auch nur ein hinweis. keiner zwingt dich zum korrigieren
Zitat: | demonstriert wie man mittels JSSS sehrwohl solche objekte ansprechen kann |
Was hat denn das mit JavaScriptStyleSheets zu tun..? Gar nichts..? JSSS ist eh schon seit jahren tot und vergessen... netscape 4.7 steht nicht mehr auf...
Aber hier sieht dein Code ja auch OK aus... Hier wird ja auch die richtige Methode aufgerufen.
Zitat: | hierbei ist es egal ob ich das objekt via Name oder ID anspreche. |
ja, man kann ein objekt über den namen oder über die id ansprechen. wenn man das objekt aber über den namen anspricht, dann muß man es auch richtig machen...
getElementsByTagName() ist einfach falsch, so wie du es angewendet hast - zum dritten mal...
getElementsByName() wäre die richtige methode, wenn du ein element über das name-attribut ansprechen willst.
hier findest du u.a. auch eine objektreferenz: http://de.selfhtml.org/javascript/
Zitat: | mir geht es darum zu wissen, wie ich das IFRAME ansteuer über "parent....." etc... |
wie andere frames auch. entweder über den namen oder über den index.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem iFrame und IE6
Iframe Problem nur bei IE7!
Problem mit iFrame
JS: IFRAME parent problem mit IE
Iframe mit Position Problem
<iframe> Problem mit Scroller
|
|