<body onload images> conflicteert met javascript doimenu

Pagina: 1
Acties:

  • getfirefoxnow
  • Registratie: Mei 2005
  • Niet online
Ik heb een vraag betreffende een conflict tussen <body onload images> en een javascript doimenu.
Het betreft de site www.kopschoon.nl.

Het probleem is dat bij elke reload de index page een random image laadt. Het laden van een image kost tijd en dit vertraagt het doimenu.

Ik heb hiervoor de volgende oplossing gevonden:

<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0"
onLoad="MM_preloadImages('images/titel001.jpg', 'images/titel002.jpg', 'images/titel003.jpg',
'images/titel004.jpg', 'images/titel005.jpg', 'images/titel006.jpg', 'images/titel007.jpg',
'images/titel008.jpg', 'images/titel009.jpg', 'images/titel010.jpg', 'images/titel011.jpg',
'images/titel012.jpg', 'images/titel013.jpg')">

Enig probleem is dat indien het doimenu wordt uitgevoerd VOOR de <body onload>, het doimenu niet meer werkt, maar de <body onload> wel. Deze dus:

<!-- doiMenu // -->
<script type="text/javascript" src="doimenu/js/doiMenuDOM.js"></script>
<script type="text/javascript" src="doimenu/js/functions.js"></script>
<!-- doiMenu // -->

<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0"
onLoad="MM_preloadImages('images/titel001.jpg', 'images/titel002.jpg', 'images/titel003.jpg',
'images/titel004.jpg', 'images/titel005.jpg', 'images/titel006.jpg', 'images/titel007.jpg',
'images/titel008.jpg', 'images/titel009.jpg', 'images/titel010.jpg', 'images/titel011.jpg',
'images/titel012.jpg', 'images/titel013.jpg')">

Als het doimenu wordt uitgevoerd NA de <body onload>, werkt het doimenu prima, maar de <body onload> niet. Deze dus:

<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0"
onLoad="MM_preloadImages('images/titel001.jpg', 'images/titel002.jpg', 'images/titel003.jpg',
'images/titel004.jpg', 'images/titel005.jpg', 'images/titel006.jpg', 'images/titel007.jpg',
'images/titel008.jpg', 'images/titel009.jpg', 'images/titel010.jpg', 'images/titel011.jpg',
'images/titel012.jpg', 'images/titel013.jpg')">

<!-- doiMenu // -->
<script type="text/javascript" src="doimenu/js/doiMenuDOM.js"></script>
<script type="text/javascript" src="doimenu/js/functions.js"></script>
<!-- doiMenu // -->

Ik heb ook al HVMENU (http://www.dynamicdrive.com/dynamicindex1/hvmenu/) geprobeerd, maar had hetzelfde probleem.

Een oplossing zou kunnen zijn, het doimenu laten werken in combinatie met <body onload>. Een andere oplossing zou kunnen zijn de dat het doimenu altijd eerder wordt ingeladen dan de image.

  • TimDJ
  • Registratie: Februari 2002
  • Laatst online: 12:49
misschien als je de 2 javascript bestanden included voor de <body> dat het wel werkt?!

Send encrypted messages - Freelance Drupal Developer


Verwijderd

of je onload die 2 bij de body, echter is het zo bij het comment van je javascript
<!-- doitmenu -->
javscript
<!-- doitmenu -->
fout, oude browser accepteren het niet zo je moet daar iig van maken
<!-- // doitmenu
javascript
//doitmenu --> en wat style (css) aan je pagina is ook beter...

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:47

crisp

Devver

Pixelated

Het ene script overschrijft de onload van het andere script; nogal logisch als daarvoor DOM level 0 eventhandlers worden gebruikt.
Je zal deze dus in een custom functie moeten combineren, of bijvoorbeeld addEvent moeten gebruiken voor je eventhandlers ;)

Alternatief is om die initialisatie-functies inline uit te voeren ipv onload - voordeel is dan ook dat je menu meteen werkt.

[ Voor 18% gewijzigd door crisp op 21-09-2005 15:54 ]

Intentionally left blank


  • getfirefoxnow
  • Registratie: Mei 2005
  • Niet online
crisp schreef op woensdag 21 september 2005 @ 15:51:
Het ene script overschrijft de onload van het andere script; nogal logisch als daarvoor DOM level 0 eventhandlers worden gebruikt.
Je zal deze dus in een custom functie moeten combineren, of bijvoorbeeld addEvent moeten gebruiken voor je eventhandlers ;)

Alternatief is om die initialisatie-functies inline uit te voeren ipv onload - voordeel is dan ook dat je menu meteen werkt.
DOM level 0 eventhandlers?? Nou ja, ik zal binnenkort mijn kennis van javascript maar eens updaten.

In ieder geval is dit probleem opgelost door in een inline frame een html pagina te plaatsen die bij onload de images laadt. De iframe staat in een invisible div. Niet echt een fraaie oplossing, maar het moet maar even voor de time being.