[JS/Firefox] Error bij aanroep van nog niet geladen functies

Pagina: 1
Acties:

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Ik heb voor een website een DHTML menutje gemaakt. Daarbij heb ik bij enkele elementen een mouseover en mouseout event geplaatst wat zorgt voor het openen en verwijdenen van de sub-menu's. Dit geeft in firefox (en andere Gecko browsers, waarschnlijk) alleen een probleem soms, namelijk dat ik een error krijg als ik zo'n event trigger voordat de JS file is geladen.

Ik roep een functie aan, en als ik snel tijdens het renderen van de pagina over bepaalde elementen beweeg met de cursor, dan krijg ik een error dat de aangeroepte functie niet bestaat. Dit omdat ze nog niet geladen zijn, als de pagina geheel geladen is werkt alles wel, ook na een error. Ik heb geprobeerd om van het event iets als onmouseover="if(functie!=undefined)functie();" te maken, maar dat heeft geen effect. Ik krijg dan nog steeds de errors.

Is er iemand die hier ook last van heeft (gehad) en die een oplossing weet? Het is niet perse nodig, het werkt nu wel goed, alleen vind ik zo'n error niet zo netjes. Die wil ik toch graag weg werken.

Noushka's Magnificent Dream | Unity


  • André
  • Registratie: Maart 2002
  • Laatst online: 11:13

André

Analytics dude

Zorg dat die functies zelf in je header staan, dan zijn ze altijd geladen?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je kan eventueel defer toevoegen aan je <script>-tag, volgens mij vertraagt dat execution van je functie totdat de body geheel is geladen :)

JavaScript:
1
<script type="text/javascript" defer></script>

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
André schreef op donderdag 30 juni 2005 @ 16:30:
Zorg dat die functies zelf in je header staan, dan zijn ze altijd geladen?
Mja, dat vind ik niet echt een oplossing.
BtM909 schreef op donderdag 30 juni 2005 @ 16:37:
Je kan eventueel defer toevoegen aan je <script>-tag, volgens mij vertraagt dat execution van je functie totdat de body geheel is geladen :)

JavaScript:
1
<script type="text/javascript" defer></script>
Volgens de definities is het juist standaard gedrag om te wachten tot het bestand geladen is, en met defer zeg je dat dat niet hoeft. Een beetje vreemd.

Noushka's Magnificent Dream | Unity


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:58

crisp

Devver

Pixelated

Script - ook een extern script - wordt inline geparsed. Dus zolang je script voor je menu (het liefst in de head-sectie uiteraard) in de source staat zou dit probleem niet op mogen treden.

Intentionally left blank