Für Netscape scheinen divs nicht zu existieren
Claudia
- dhtml
0 Gero Takke0 hartmann0 Thomas J.S.0 hartmann
0 Rico0 Harald Legler0 Thomas Hieck
Hallo Forumianer,
Ich hoffe inständig, daß ihr mir folgendes erklären könnt:
Ich habe bei einer Seite mehrere divs angelegt (5 Stück), die beim laden der Seite zunächst mit visibility:hidden ausgeblendet werden. Wenn ich jetzt versuche auf sie zuzugreifen, tut der Netscape so als würden nur die ersten beiden existieren (also die divs, die zuerst in der datei vorkommen).
Warum? Ich bin ratlos.
Vielen Dank schon mal
Claudia
Hai Claudia
es wäre seht hilfreich, wenn du den Code mal posten würdest...
grundsätzlich funktionieren DIVs auch in Netscape, aber ich habe noch keine möglichkeit gefunden, die visibility nachträglich auf "show" zu setzen...
bis denn
der gero
^Hallo Gero,
es wäre seht hilfreich, wenn du den Code mal posten würdest...
die seite:
<body>
<stinknormales HTML>
...
</stinknormales HTML>
<div id="div1">
...
</div>
<div id="div2">
...
</div>
<div id="div3">
...
</div>
<div id="div4">
...
</div>
<div id="div5">
...
</div>
</body>
Die divs werden per css im head ausgeblendet und absolut positioniert.
Jetzt kommt noch das skript:
function anzeige(was){
var bereiche=new Array;
bereiche[0]="div1";
bereiche[1]="div2";
bereiche[2]="div3";
bereiche[3]="div4";
bereiche[4]="div5";
for (i=0;i<5;i++){
if (i!=was){document[bereiche[i]].visibility="hidden";}
else{
document[bereiche[was]].visibility="visible";}
}
}
Funktionsaufruf im href:
onmouseover="anzeige(3)" <----bzw. anzeige(1,2...)
Die Funktion habe ich geschrieben, damit je nach dem die entsprechenden divs ein- und ausgeblendet werden.
Der Netscape macht es auch...aber eben nur mit den ersten beiden. dann meldet er
document[bereiche[i]] has no properties. Das heißt er meldet es natürlich wegen der Schleife jedes mal. So nach dem Motto:
document[bereiche[0]]? Klar, da isser, blende ich doch mal ein...
document[bereiche[1]] ? Na immer !
document[bereiche[2]]? Hä, den gibt's hier nicht!
grundsätzlich funktionieren DIVs auch in Netscape, aber ich habe noch keine möglichkeit gefunden, die visibility nachträglich auf "show" zu setzen...
Also das geht schon, aber nicht mit "show" sondern mit "visible", aber das hast du ja schon gesehen..
Ich hoffe ich habe das Problem irgendwie verständlich beschrieben.
Schöne Grüße
Claudia
Hallo Claudia,
document[bereiche[1]] ? Na immer !
du muss fuer den netscape "document.layer" verwenden
document.layers['navi']
(navi iste die layer-id)
Gruesse
Wilhelm
Hallo Claudia,
du muss fuer den netscape "document.layer" verwenden
nicht zwingend, aber so ist es schon richtig. Der Witz ist folgender:
Nehmen wir an wir haben nur eine Zeile code in dem skript, die lautet
document.layers['div1'].visibility="visible";
funktioniert prächtig.
jedoch:
document.layers['div4'].visibility="visible";
Fehler! document.layers.div4 has no properties. Obwohl dieser div wirklich da ist.
Ändere ich die Reihenfolge in z.B. div4, div5, div1, div2, div3, dann funktioniert es tadellos mit div4 und 5...
Ist das nicht echt komisch????
Viele Grüße
Claudia
Hy Claudia:
Dein Problem hatte ich auch schon.
Dabei hatte ich im Style-Bereich etwas geschlafen und die Formatierung stimmte nicht 100%ig.
Zur Kontrolle kannst Du unter Ansicht die Seiteninformationen anschauen. Dort sind auch alle für Netscape existierende Div-Layers verzeichnet.
Christoph
Hallo Claudia,
bei mir klappt's folgendermaßen:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<style type="text/css">
#div1{position:absolute;visibility:hide}
#div2{position:absolute;visibility:hide}
#div3{position:absolute;visibility:hide}
#div4{position:absolute;visibility:hide}
#div5{position:absolute;visibility:hide}
</style>
<script>
function anzeige(was){
var bereiche=new Array;
bereiche[0]="div1";
bereiche[1]="div2";
bereiche[2]="div3";
bereiche[3]="div4";
bereiche[4]="div5";
for (i=0;i<5;i++){
if (i!=was){document[bereiche[i]].visibility="hidden";}
else{
document[bereiche[was]].visibility="visible";}
}
}
</script>
</head>
<body>
<a href="javascript:anzeige(0)">zeige1</a><br>
<a href="javascript:anzeige(1)">zeige2</a><br>
<a href="javascript:anzeige(2)">zeige3</a><br>
<a href="javascript:anzeige(3)">zeige4</a><br>
<a href="javascript:anzeige(4)">zeige5</a>
<div id="div1">
1111
</div>
<div id="div2">
2222
</div>
<div id="div3">
3333</div>
<div id="div4">
4444
</div>
<div id="div5">
5555
</div>
</body>
</html>
Hallo!
Nichts für ungut, aber:
<style type="text/css">
#div1{position:absolute;visibility:hide}
#div2{position:absolute;visibility:hide}
#div3{position:absolute;visibility:hide}
#div4{position:absolute;visibility:hide}
#div5{position:absolute;visibility:hide}
</style>
Das ist kein CSS, sonder eine Mischung aus CSS und JSSS.
So funktioniert es auch, unter NS ja, unter IE nicht.
Grüße
Thomas
Hallo!
Nichts für ungut, aber:
Für IE ist eh' kein Skriptzweig geschrieben worden.
Grüße Hartmann
Hallo Forumianer,
Ich hoffe inständig, daß ihr mir folgendes erklären könnt:
Ich habe bei einer Seite mehrere divs angelegt (5 Stück), die beim laden der Seite zunächst mit visibility:hidden ausgeblendet werden. Wenn ich jetzt versuche auf sie zuzugreifen, tut der Netscape so als würden nur die ersten beiden existieren (also die divs, die zuerst in der datei vorkommen).
Warum? Ich bin ratlos.Vielen Dank schon mal
Claudia
»»
Ähnlich (seltsame) Effekte traten bei mir auf, weil Netscape ein emotionales Problem mit relativ positionierten DIVs hat. Man kann DIVs mit Netscape mit allen Layerbefehlen bearbeiten, sobald man die DIVs mit "position:absolute" positioniert. Dann fkt auch Netscape (meisst) stabil.
Hallo Claudia,
hatte fast das gleiche Problem, der NS erkannte meine <div> nicht. Antje hat mir da geholfen. Schau doch mal zu http://www.teamone.de/selfaktuell/self_forum/23018.html
ein paar threat weiter unten. Vielleicht kann ich ja noch als schlechtes Beispiel dienen...;)
Gruß
Harald Legler
Hallo Claudia,
hatte fast das gleiche Problem, der NS erkannte meine <div> nicht. Antje hat mir da geholfen. Schau doch mal zu http://www.teamone.de/selfaktuell/self_forum/23018.html
ein paar threat weiter unten. Vielleicht kann ich ja noch als schlechtes Beispiel dienen...;)
Gruß
Harald Legler
Ich habe es noch einmal überprüft, aber nur im Navi 4.5
Ein nichtgeschlossener p-Tag in einem div verhindert definitiv, daß nachfolgende divs auch wenn sie absolut positioniert werden, nicht mehr als solche erkannt werden.
Viele Grüße
Antje
PS: Harald, ich glaube solch ein Fehler wird dir nie wieder unterlaufen und toll, daß du es weitergegeben hast.
Ich habe bei einer Seite mehrere divs angelegt (5 Stück), die beim laden der Seite zunächst mit visibility:hidden ausgeblendet werden. Wenn ich jetzt versuche auf sie zuzugreifen, tut der Netscape so als würden nur die ersten beiden existieren (also die divs, die zuerst in der datei vorkommen).
Bei Netscape ist es UNBEDINGT erforderlich, dass die Seite auch wirklich korrekt ist. Ein einziger </> vergessen oder falsch gesetzt oder einer ID doppelt vergeben und schon gibt es Probleme. Ich bin sicher, wenn Du alles ueberpruefts im zweiten oder dritten DIV, dann wirst Du den Fehler finden.
Viele Gruesse, Thomas Hieck
Bei Netscape ist es UNBEDINGT erforderlich, dass die Seite auch wirklich korrekt ist. Ein einziger </> vergessen oder falsch gesetzt oder einer ID doppelt vergeben und schon gibt es Probleme. Ich bin sicher, wenn Du alles ueberpruefts im zweiten oder dritten DIV, dann wirst Du den Fehler finden.
Jepp
und die Semikolons in den Style Tags sind auch noch
oberwichtig .. obwohl vergessene Semikolons da meist
gleich zum Crash von Netscape führen...
Wie auch immer... Validator ist bei Netscape mit
solchen Problemen erste Plicht..
gruss
Jens