Ralf Baumert: Timing Problem

Hi Leute,

ich habe ein Problem mit meinem Menu:
es funzt so:

var selected=0;
var onImgArray = new Array;

onImgArray[0] = new Image;      
onImgArray[0].src = "grafik/home1.gif";

var offImgArray = new Array;

offImgArray[0] = new Image;
offImgArray[0].src = "grafik/home.gif";

var selectedImgArray = new Array;

selectedImgArray[0] = new Image;
selectedImgArray[0].src = "grafik/home1.gif";
}

function lightup(i) {
if (document.images)

{
        if (i!=selected)
{
        document.images[i].src = onImgArray[i].src;
        }
        }
}
function darken(i) {
if (document.images)
        {
        if (i!=selected) {
        document.images[i].src = offImgArray[i].src;
        }
        }
}
function select(i) {
if (document.images)
        {
        document.images[selected].src = offImgArray[selected].src;
        selected=i;
        document.images[i].src = selectedImgArray[i].src;
}

also HoverButtons, und wenn jemand einen Menupunkt
auswählt, wird das Bild so getauscht, daß man
erkennt, wo man sich gerade befindet. Das Problem bei der Sache ist, daß bei einem Reload die Variable
_selected_ auf 0 gesetzt wird, man ist also z.B.
auf Links, drückt reload, und dann zeigt einem das
Menu, daß man auf Home ist (obwohl links dargestellt wird). Das menu ist in einem frame, der Rest in einem
anderen Frame.

Also hab ich geskriptelt:
<BODY
onLoad="javascript:if (parent.frames[0].selected!=0) {
parent.frames[0].document.images[parent.frames[0].selected+1].src = parent.frames[0].imageOff[parent.frames[0].selected].src;
parent.frames[0].selected=0;
parent.frames[0].document.images[1].src = parent.frames[0].imageSelected[0].src;}">

das funzt so:
wenn eine page (z.B. home) fertig geladen ist,
dann tauscht sie die bilder im navigationsframe aus, und setzt die variable selected auf den richtigen
wert.

Das Problem:
es ist wohl ein timing problem;
das hauptframe versucht die bilder im naviframe zu
tauschen, aber die naviseite ist noch nicht
aufgebaut und ich bekomme einen skriptfehler.

weiß jemand eine Lösung dafür (auf die frames
will ich nicht verzichten)

ah, zu sehen ist das ganze unter www.taxcom.de

vielen Dank im voraus,
Ralf

  1. Ich würde über ein window.timeOut überprüfen ob das object (image) exsisitiert wenn ja dann: images setzen und timout beenden ansonsten nächsten timeout abwarten.

    ansonsten kann man solche infos auch noch ganz prima im window.name unterbringen. siehe die beiträge auf der selfaktuell seite.

    timo.

    1. Thanx Timo,

      es funzt mit dem window.setTimeout :)

      Ralf