Avatar billede sif4ever Nybegynder
10. december 2001 - 15:23 Der er 12 kommentarer og
1 løsning

Menu

Hej

Jeg har et problem med mit javascript, det loader først ind, når hele siden er loadet ind, det er lidt træls. Hvordan sætter jeg javascriptet til at loade før hele siden? Mit Javascript er en menu.

MVH
Jesper
/SIF4ever.dk
Avatar billede Slettet bruger
10. december 2001 - 15:30 #1
Først må du lige huske, at nogle scripts kræver, at de kender fx sidens mål, og websiden skal derfor være helt loadet, før scriptet kan affyres.

Men nu til løsningen af dit problem:
Hvis din menu ligger i en funktion, der kaldes i body onLoad, så skal du bare tage koden dér og lægge den ind mellem <script>-tagsene.
Fx:

<script>
function menu(...) {
...
}
</script>
<body onLoad=\"menu(...);\">

Laves til:

<script>
function menu(...) {
...
}

menu(...);
</script>

Nogle gange står body onLoad allerede mellem script-tagsene, så skal det bare fjernes fra eventhandleren, fx:

<script>
function menu(...) {
...
}

body.onLoad = menu(...);
</script>

Bliver til:

<script>
function menu(...) {
...
}

menu(...);
</script>
Avatar billede mccookie Seniormester
10. december 2001 - 15:31 #2
Sæt dit Javascript i HEAD tagget

<Head>
<Script Language=\"menu.js\"></Script>
</Head>
Avatar billede Slettet bruger
10. december 2001 - 15:31 #3
Hvis ovenstående ikke virker, eller du ikke forstår det, må du lægge et link!

Men jeg smutter nu! :)
Avatar billede sif4ever Nybegynder
10. december 2001 - 15:35 #4
Avatar billede jakoba Nybegynder
10. december 2001 - 15:42 #5
Jeg kan slet ikke se din menu ( IE4.0 )
men det er en grumme langsom side at loade. med php-scripting og en chart.dk tæller indeni tabellen. Gør siden noget hurtigere.
Avatar billede sif4ever Nybegynder
10. december 2001 - 15:45 #6
Øverst er menuen.

Direkte url er:
http://www.sif4ever.dk/menu1.php
Avatar billede Slettet bruger
11. december 2001 - 15:37 #7
Det er desværre umuligt i dit tilfælde, da funktionen init(), der starter menuen, skal bruge vinduets højde, og denne information er ikke tilgængelig, før siden er loadet!
Sorry!
Avatar billede sif4ever Nybegynder
11. december 2001 - 17:41 #8
Hvilke alternativer har jeg så?

Ingen eller hvad?
Avatar billede jakoba Nybegynder
11. december 2001 - 17:55 #9
Joe, vinduet indre højde kan vi godt finde før siden er færdigloadet

<script type=\'text/javascript\'>
var vinBred = (window.innerWidth)?window.innerWidth:document.body.clientWidth;
var vinHoj = (window.innerHeight)?window.innerHeight:document.body.clientHeight;
</script>

scriptet skal blot stå efter sidens <body kommando så er det ok.

mvh JakobA
Avatar billede Slettet bruger
11. december 2001 - 21:02 #10
Det virker bare ikke helt efter hensigten, jakoba! I hvert fald ikke i min IE5.
NavBar\'en bliver lidt bredere en skærmens bredde!
Avatar billede jakoba Nybegynder
11. december 2001 - 21:06 #11
2 muligheder:
1) der er x pixel venstremargin/padding der skubber dit indhold tilhøjre.
2) der kommer scrollbar på siden og tager nogen af dine pixels i bredden (sker nu sjældent med IE, men opera snupper lidt tilsidst)
Avatar billede sif4ever Nybegynder
11. december 2001 - 21:25 #12
Jeg er ikke lige med. Det får vel bare en firkant til at komme frem, hvor menuen så kommer når siden er loadet eller hvad?
Avatar billede sif4ever Nybegynder
21. februar 2002 - 04:05 #13
lukker tråden, det blev til noget helt andet end dette...
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