Frames ansprechen

tach community…
javascript… es ist so lange her…

also… zwei probleme :

ich moechte ein formularelement (textfield) in einem contentframe ansprechen.

der frame befindet sich innerhalb eines framesets.
also… klassische dreiteilung. header, content, navi.
und der content frame ist nochmal in einen frameset unterteilt.

1.) wie spreche ich dann das element an. ich dachte so:

window.contentFrame1.contentFrame2.formName.elementname
oder
window.contentFrame2.formName.elementname

2.) das zweite problem ist weniger trivial…
kann ich die frames nur ueber den namen ansprechen? ging das nicht auch durch nummern…? also… frames[0] oder so??
kriege das nicht hin… vor allem nicht bei meiner verschachtelung.

das problem ist, dass der framename variiert und mein script nicht weiss wie der frame heisst. deshalb muesste ich den anders anspringen.

in welcher reihenfolge werden die frames ausgegeben?

und… last but not least…

wie kann ich mir die aktuellen namen aller frames ausgeben lassen, wenn mein script die anzahl und den namen der frames nicht weiss.

hab schon geknobelt und weiss es nicht besser…
selfhtml konnte mir nicht helfen … :wink:

grusz

PixelKoenig

1.) wie spreche ich dann das element an. ich dachte so:

window.contentFrame1.contentFrame2.formName.elementname
oder
window.contentFrame2.formName.elementname

Wenn ich dich richtig verstehe hast du EINE html datei, in der sich ein frameset-Tag befindet, in dem sich ein weiterer frameset-Tag sowie ein frame tag befinden?
Die Ansprache eines Frames ist generell davon abhängig von welcher Position man den Frame ansprechen möchte. Willst du zum Beispiel aus einer Seite , die im menu frame geladen wird, eine Inhaltsseite ansprechen, geht das prinzipiell so:

parent.frameNameOderNr.location.href=„eineseite.html“;

Vermutlich hast du nur das Schlüsselwort parent vergessen, ein verweis auf das übergeornete Frameset aus sicht der seite.

2.) das zweite problem ist weniger trivial…
kann ich die frames nur ueber den namen ansprechen? ging das
nicht auch durch nummern…?

Ja. Die Frames einer seite sind durchnummeriert von 0 bis x. die nummer 0 bekommt der erste frame-tag im quellcode der seite, der zweite frame-Tag die nummer 1 usw. Schema:

parent.frames[2].location.href=„eineseite.html“;

Wie du schon angemerkt hast, kann man Framesets auch in Framesets laden, wenn man meint dies sei nötig. Bei deiner Aufteilung ist dies aber nicht notwendig. Falls doch ist die ansprache wie du schon vermutet hast nach dem schema

parent.frames[0].frames[0].location.href=„eineseite.html“

möglich.

wie kann ich mir die aktuellen namen aller frames ausgeben
lassen, wenn mein script die anzahl und den namen der frames
nicht weiss.

z.B. mit einer Schleife. die für jeden Frame das name attribut ausliest… (Die Schleife liest nur die namen der frames des relativ zur seite übergeordneten framesets aus).

for(var i=0; i

hi DP,

auch hier nicht ganz trivial… oder wahrscheinlich doch.
ich werde mal konkreter.

ich habe einen klassischen frameset.
im „content“ frame wird ein frameset einer seite aus einer anderen domain aufgerufen. Das ganze laeuft bei mir in der firma im intranet.
also… kein framespoofing :wink:

nun kenne ich den framesetaufbau der fremden seite nicht. diese wird dynamisch durch javascript realisiert. und ich komme an den quelltext nicht ran. rechte maustaste verboten. ohne JS wird frame nicht dargestellt. und ich habe in dem netz nur den IE zur verfuegung… also bloed.

was ich eignetlich tun will ist sehr einfach.
ich will wie JS eine formularseite vorausfuellen. und zwar aus meinem frameset heraus.

also… zum beispiel das feld user und login belegen.
dazu brauche ich aber den namen des frames und die der felder…
die namen der felder waeren nicht so schlimm… das bekomme ich durch durchzaehlen schon raus… aber wie komme ich an den frameset?

grusz

PixelKoenig

Auslesen kannst du die frame namen natürlich genauso wie schon genannt, wenn es sich jedoch um eine Seite auf einem fremden Server handelt wird der Zugriff aus Sicherheitsgründen nicht erlaubt. (Skriptfehler) Ich vermute das ist auch dein Problem. Da kommt man möglicherweise nur mit signierten Skripten weiter. Oder du installierst die betreffenden Formulare auf deinem lokalen server.
Gruß DP