Felder in verschachtelten iframes ansprechen
Claudia Binias
- javascript
0 Kai Lahmann0 Binias
Hallo,
ich habe verschachtelete iframes
|-------------|
|F1 |
| |----------|
| |F2 |
|-------------|
Im Frame 2 befindet sich ein <div>, welches ich über JavaScript sichtbar und unsichtbar schalten möchte.(Nachbildung einer ComboBox)
...
<input style="width=120" value="Vorstand" id="ORGAN1" name="ORGAN1" maxlength="20" type="TEXT">
<a href="javascript:showDD('ORGAN1')"><img width="18" src="open_dd.gif" height="20" align="absmiddle"></a><br>
<div class="dd" id="DD_ORGAN1" name="DD_ORGAN1" style="width=120">
<a class="dd" href="javascript:" onClick="setDDData('ORGAN1','Aufsichtsrat')" >Vorstand</a><br>
<a class="dd" href="javascript:" onClick="setDDData('ORGAN1','Aufsichtsrat')">Aufsichtsrat</a>
</div>
...
JavaScript aus einer Datei:
function showDD(name)
{
document.all["DD_"+ name].style.visibility="visible";
}
function setDDData(targetField, value)
{
alert(targetField);
document.all[targetField].value = value;
hideDD(document.all["DD_"+ targetField].id);
}
function hideDD(name)
{
document.all[name].style.visibility="hidden";
}
function hideAllDD()
{
for(i = 0; i < document.all.length; i++)
{
if(document.all[i].id.substr(0,3)=='DD_')
{
hideDD(document.all[i].id);
}
}
}
Das Problem ist nur, dass wenn ich die showDD Funktion aufrufe, ich die Fehlermeldung "document.all[] ist null oder kein Object" bekomme.
Die Funktion hideDD beinhaltet ja die gleiche syntax und funktioniert, so wie ich sie jetzt aufrufe, ohne Probleme. Rufe ich hideDD statt showDD auf, bekomme ich den gleichen Fehler!
Speche ich das Feld in showDD über document.f1.f2.organ1 an so bekomme ich keinen Fehler. Möchte ich aber nicht tun, da die Funktionen unabhängig sein sollen.
Kann mir jemand sagen wo das Problem liegt. Das script muss nur auf dem IE5.5 laufen.
Vielen Dank
Claudia
hi
JavaScript aus einer Datei:
function showDD(name)
{
document.all["DD_"+ name].style.visibility="visible";
}
document.all vergessen wir mal - is besser so ;)
parent.frames.<iframe-name>.document.getElementById("DD_"+name).style.visibility="visible";
...Rest sinngemäß.
Das script muss nur auf dem IE5.5 laufen.
muss oder darf? Warum sich das leben schwer machen, nur damit etwas woanders nicht geht ;)
Grüße aus Lüneburg
Kai
Hallo
parent.frames.<iframe-name>.document.getElementById
Das war die Lösung!!
Vielen Dank
Claudia