Submenüs mit Java - Problem
jaki
- javascript
Hallo,
ich brauche für eine Homepage Submenüs. Das Problem ist, dass es wirklich sehr viel Inhalt ist, und es wirklich eine Menge Arbeit wäre das ganze "indirekt" zu schreiben. Deswegen habe ich mir gedacht, dass ich die ganzen Subdmenüs in ein IFrame mache und jeweils mit einer ID versehe. Wenn ich dann auf ein Oberpunkt klicke, wird der Inhalt des entsprechenden Submenüs einfach mit innerHTML an die richtige Stelle ausgegeben werden. Desweiteren soll Der Inhalt bei einem weiteren Klick oder bei einem Klick auf einen anderen Oberpunkt wieder verschwinden.
Gut, das Script welches ich mir da geschrieben hat funktioniert eigentlich recht gut, allerdings nur im IE. Allerdings soll es auch in Netscape funktionieren.
Ein Freund hat mir dann vorgeschlagen das node-Object zu benutzen. Ich habe testweise deleteData() versucht einzubinden, allerdings funktioniert dann garnichts mehr und es kommt auch keine Fehlermeldung. http://selfhtml.teamone.de/javascript/objekte/node.htm#delete_data
Hier mal das Script:
--------------------
<script language="JavaScript" type="text/javascript">
pfeiloff = new Image();
pfeiloff.src = "images/pfeil.gif";
pfeilon = new Image();
pfeilon.src = "images/pfeil2.gif";
function changesub(opensub) {
var AnzahlZeichen;
subs = new Array('oberpunkt_1','usw');
for(var i=0; i < subs.length; i++) {
if(opensub != subs[i] || eval("document.all.a_" + subs[i] + ".innerHTML!=''")) {
//eval("document.all.a_" + subs[i] + ".innerHTML=''");
AnzahlZeichen = document.getElementById("a_" + subs[i]).firstChild.nodeValue.length;
alert(AnzahlZeichen);
if(eval("document.images['img_" + subs[i] + "'].src != pfeiloff.src")) eval("document.images['img_" + subs[i] + "'].src = pfeiloff.src;");
}
else {
eval("document.all.a_" + subs[i] + ".innerHTML=subs_frame.document.all.b_" + subs[i] + ".innerHTML");
eval("document.images['img_" + subs[i] + "'].src = pfeilon.src;");
}
}
}
</script>
Ich habe vorerst mal nur versucht die Länge zu ermitteln (nicht den Inhalt zu löschen) um den Fehler einzugrenzen. Beim Aufruf der Funktion erscheint keine Meldung mit der Anzahl der Zeichen (normalerweise müssten ja mehrere Meldungen kommen) und es wird nur noch das erste Submenü "eingeblendet".
Dabei ist die einzige Änderung, dass ich AnzahlZeichen hinzgefügt habe und eval("document.all.a_" + subs[i] + ".innerHTML=''"); auskommentiert habe.
Wäre froh, wenn mir jemand sagen könnte, wo mein Fehler liegt, komme nämlich garnicht mehr weiter.
PS: Ich mache normalerweise sogut wie garnichts mit JavaScript, deswegen kann es durchaus sein, dass ich das ganze etwas zu umständlich geschrieben habe ;)
MfG
Jaki
Hallo,
Dabei ist die einzige Änderung, dass ich AnzahlZeichen hinzgefügt habe und eval("document.all.a_" + subs[i] + ".innerHTML=''"); auskommentiert habe.
das document.all objekt existiert nur im Internet Explorer, versuch das ganze mal mit getElementById.
steht in SelfHTML
gruss
das document.all objekt existiert nur im Internet Explorer, versuch das ganze mal mit getElementById.
Danke, ich dachte das innerHTML funktioniert im Netscape nicht.
Aber im Netscape 4 wird man das nicht zum laufen kriegen, oder?