Avatar billede snie97 Nybegynder
25. juli 2004 - 20:41 Der er 12 kommentarer og
1 løsning

Scriptet virker upåklageligt, men der er en syntaksfejl

Jeg er ved at lave nyt design til vores hjemmeside, og i den forbindelse har jeg lavet en dropdownmenu.

For at lette byrden på brugerne bliver selve menuen hentet ind fra en .js-fil så de ca. 13 kb ikke skal hentes på alle sider.

Scriptet, og menuen, virker 100% som det skal og jeg er meget tilfreds med resultatet af de 6-7 timers kodning. Det eneste problem er at browseren melder en syntaksfejl når man går ind på siden.

Test selv: www.oik.dk/v3/design.htm

Min browser siger linie 107, tegn 1, fejl: Der er en syntaksfejl.

Scriptet der laver div-tagsne til menuen ligger på www.oik.dk/v3/menu.js

Er der én der kan fortælle mig, hvad det er der er galt?
Avatar billede thesurfer Nybegynder
25. juli 2004 - 20:52 #1
Der er ingen fejl, ifølge Opera's debugger.
Avatar billede nikolajdu Nybegynder
25. juli 2004 - 21:02 #2
Prøv at rykke

<script src="menu.js"></script>

op før menu sektionen.
Avatar billede snie97 Nybegynder
25. juli 2004 - 21:48 #3
den er allerede før, men jeg prøvede lige at lægge den før image-map'et - uden held...
Avatar billede roenving Novice
26. juli 2004 - 00:51 #4
Du har i hvert fald ikke en korrekt sprog-erklæring med ...

<script src="menu.js"></script>

-- og denne (bla. linje 135, som giver fejl i min bruser !-) ser mærkværdig ud ...

}
else { }
}
i = 0;
Avatar billede snie97 Nybegynder
26. juli 2004 - 16:12 #5
Ingen af jeres løsningsideer har virket... Jeg har nu skrevet koden om, så den kun kører 2 løkker (dog med en løkke i en løkke) og scriptet fylder nu kun en fjerdedel. Derfor har jeg sat det direkte ind i html'en og dér virker det uden problemer... Det gjorde det gamle i øvrigt også.
Avatar billede snie97 Nybegynder
26. juli 2004 - 17:28 #6
Og nu virker den heller ikke... Den er i hvert fald begyndt at melde om fejl igen...

Der ligger en ny udgave på www.oik.dk/v3/nymenu.htm

Det sjove er, at linjen med fejlen er 209, hvilket passer med denne linje "  <map name="menu_Map">".

Jeg kan ikke forstå hvad jeg går galt...

Kan det være menuCont arrayet der simpelthen er for stort?
Avatar billede snie97 Nybegynder
26. juli 2004 - 17:30 #7
Det er ikke arrayet... har lige prøvet at gøre det så småt som muligt, med kun 9 poster...
Avatar billede snie97 Nybegynder
27. juli 2004 - 09:53 #8
Jeg fik flg. svar på dk.edb.internet.webdesign.clientside:


I linie 190 skriver du:
document.write('<tr><td class="ddoff" onMouseOver="this.className =
\'ddon\';" onMouseOut="this.className = \'ddoff\';" onClick="location.href
= "' + mCSplit[2] + '";">

Oversat til html bliver det:
<tr><td class="ddoff" onMouseOver="this.className = 'ddon';"
onMouseOut="this.className = 'ddoff';" onClick="location.href =
"forsiden";">

Hvis du kigger lidt nærmere på din onClick, så vil du nok bemærke, at der
er et problem med dine doublequotes.

Sådan her burde det virke:
document.write('<tr><td class="ddoff" onMouseOver="this.className =
\'ddon\';" onMouseOut="this.className = \'ddoff\';" onClick="location.href
= \'' + mCSplit[2] + '\';">


--

og det virker!
Avatar billede nikolajdu Nybegynder
27. juli 2004 - 10:06 #9
dejligt
Avatar billede snie97 Nybegynder
27. juli 2004 - 10:26 #10
men jeg kan stadig ikke forstå hvordan det kan blive til en syntax-fejl, for reelt er det jo ikke en syntaxfejl...
Avatar billede roenving Novice
27. juli 2004 - 10:36 #11
Jo, fordi html tolker det som en td med følgende attributter:

class="ddoff"
onMouseOver="this.className = 'ddon';"
onMouseOut="this.className = 'ddoff';"
onClick="location.href = "
forsiden
";"

-- og attributten forside findes selvfølgelig ikke !-)

-- det skal da også nævnes, at class-skifte on-the-fly er en avanceret måde at skyde sig selv i foden på, for det i bedste fald forsinke din sides visning, da browseren, hver gang du ændrer eet class-name smider hele sidens rendering ud og starter forfra, dog uden at reloade noget !o]
Avatar billede nikolajdu Nybegynder
27. juli 2004 - 11:02 #12
og så skal dine "" i den her byttes ud med ' '

onClick="location.href = "
forsiden
";"

bliver til :

onClick="location.href = 'forsiden';"
Avatar billede nikolajdu Nybegynder
27. juli 2004 - 11:03 #13
og så bør evenhandlere skrives med småt for tilvænningens skyld (krævet i xhtml)

onclick
onmouseover
o.s.v
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester