Bildwechsel Standardfunktion mit Layerdurchsuch / Netscape / Error
Meiko Michalsky
- javascript
Ich bekomme bei der Funktion immer eine Fehlermeldung beim Netscape:
Attempt to access nonexistent slot 1 of layers[] array.
Angucken kann man sich das ganze unter:
http://meiko.purespace.de/nav.htm
Hier die Funktion:
function bild(welches,datei){
if (navigator.appName == "Microsoft Internet Explorer")
document.images[welches].src=datei;
if (navigator.appName == "Netscape"){
var i;
var j;
var nrb;
var nrl;
for (j=0; j<=document.layers.length; j++){
if (document.layers[j].document.images.length){
// (^) Versuch einer Fehlerkorrektur
for (i=0; i<=document.layers[j].document.images.length;i++){
if (document.layers[j].document.images[i].name == welches){
nrb=i;
nrl=j;
i=document.layers[j].document.images.length;
j=document.layers.length;
}
}
}
}
}
document.layers[nrl].document.images[nrb].src=datei;
}
Wenn jemand eine Antwort weiß, bitte eine Mail an mich: meikom@gmx.net
Thanx ...
Hallo Meiko
Attempt to access nonexistent slot 1 of layers[] array.
Das bedeutet, es existiert kein Layer Nr.1
Dein Fehler liegt hier:
for (j=0; j<=document.layers.length; j++){
document.layers.length gibt die Anzahl der Layer aus. Hast du z.B. 2 Layer, dann sind das die Layer Nr. 0 und 1. Deine Schleife fragt aber die Layer 0,1 und 2 ab. 2 existiert jedoch nicht. Daher die Fehlermeldung.
Lösung: for (j=0; j<document.layers.length; j++)
den gleichen Fehler hast du auch bei der Bildlänge gemacht.
»» for (i=0; i<=document.layers[j].document.images.length;i++)
auch hier muß es heißen:
for (i=0; i<document.layers[j].document.images.length;i++)
Wenn jemand eine Antwort weiß, bitte eine Mail an mich: meikom@gmx.net
nö, ich bin meist zu faul zum Mail schreiben. Außerdem ist dies ein Forum und keine Mailingliste. Wer Antworten haben möchte muß sich schon herbemühen.
Viele Grüße
Antje
Viele Grüße