Vraag & Antwoord

Webprogrammeren & scripting

[JavaScript] Syntax-error

4 antwoorden
  • Hallo mensen, wat is er fout aan de volgende code: [code:1:d0b234cd31]document.write('<img src="afbeeldingen/design/sound_off.gif" width="56" height="24" border="0" alt="Sound Off" onMouseOver="swap(21,sound_offa); audioDo('play','Beep')" onMouseOut="swap(21,sound_off)" onclick="AudioToggle()">');[/code:1:d0b234cd31] De fout is: ) wordt verwacht. :-? Wat heb ik nu verkeerd gedaan? :o Groeten van Lennart Goosens. :P :wink:
  • zoiets lijkt me meer in de richting: [code:1:bb04df6851] document.write('<img src="afbeeldingen/design/sound_off.gif" width="56" height="24" border="0" alt="Sound Off" onMouseOver="javascript:swap(21,sound_offa);audioDo(\'play\',\'Beep\')" onMouseOut="javascript:swap(21,sound_off)" onClick="javascript:AudioToggle()">'); [/code:1:bb04df6851] maw, omdat je je code tussen ' en ' hebt staan moet je het gebruik van deze tekens in je code daartussen escapen met \. Verder is het gebruikelijk 'javascript:' voor de functies te zetten in de OnMouseOver's e.d. [edit] Oh en ik vraag me af of dit zowieso wel gaat werken, aangezien de onMouseOver/onMouseOut/onClick volgens mij alleen bij hyperlinks gebruikt kunnen worden (dus <a href="#" onMouseOver=.... onMouseOut=... onClick=...><img src=""></a>. [/edit]
  • [quote:d643d962d0="jkossen"]zoiets lijkt me meer in de richting: [code:1:d643d962d0] document.write('<img src="afbeeldingen/design/sound_off.gif" width="56" height="24" border="0" alt="Sound Off" onMouseOver="javascript:swap(21,sound_offa);audioDo(\'play\',\'Beep\')" onMouseOut="javascript:swap(21,sound_off)" onClick="javascript:AudioToggle()">'); [/code:1:d643d962d0] maw, omdat je je code tussen ' en ' hebt staan moet je het gebruik van deze tekens in je code daartussen escapen met \. Verder is het gebruikelijk 'javascript:' voor de functies te zetten in de OnMouseOver's e.d. [edit] Oh en ik vraag me af of dit zowieso wel gaat werken, aangezien de onMouseOver/onMouseOut/onClick volgens mij alleen bij hyperlinks gebruikt kunnen worden (dus <a href="#" onMouseOver=.... onMouseOut=... onClick=...><img src=""></a>. [/edit][/quote:d643d962d0] Die edit was niet nodig, want de onmousovers werken. Maar ik heb nu een probleem: hoe voorkom ik dat document.write een nieuw leeg blanco document opent waarin alleen die image staat? :( Mijn volledige code is: [code:1:d643d962d0]document.write('<img src="afbeeldingen/design/sound_off.gif" width="56" height="24" border="0" alt="Sound Off" onMouseOver="swap(21,sound_offa); audioDo(\'play\',\'Beep\')" onMouseOut="swap(21,sound_off)" onclick="AudioToggle()">'); function AudioToggle() { if (audioOn == true) { audioOn = false; document.write('<img src="afbeeldingen/design/sound_ona.gif" width="56" height="24" border="0" alt="Sound On" onMouseOver="swap(21,sound_ona); audioDo(\'play\',\'Beep\')" onMouseOut="swap(21,sound_on)" onclick="AudioToggle()">'); } else { audioOn = true; document.write('<img src="afbeeldingen/design/sound_offa.gif" width="56" height="24" border="0" alt="Sound Off" onMouseOver="swap(21,sound_offa); audioDo(\'play\',\'Beep\')" onMouseOut="swap(21,sound_off)" onclick="AudioToggle()">'); } }[/code:1:d643d962d0] De functie AudioToggle() roept weer dingen aan uit twee andere scripts. Eerst doet hij het wel goed, maar bij de tweede en derde keer document.write niet! :o Groeten van Lennart Goosens. :P :wink:
  • [quote:16df6fd32a="jkossen"]Verder is het gebruikelijk 'javascript:' voor de functies te zetten in de OnMouseOver's e.d. [/quote:16df6fd32a] Misschien is het wel gebruikelijk, maar ook hartstikke fout ;) Niet doen dus [quote:16df6fd32a="jkossen"] [edit] Oh en ik vraag me af of dit zowieso wel gaat werken, aangezien de onMouseOver/onMouseOut/onClick volgens mij alleen bij hyperlinks gebruikt kunnen worden (dus <a href="#" onMouseOver=.... onMouseOut=... onClick=...><img src=""></a>. [/edit][/quote:16df6fd32a] Gelukkig zijn deze events niet alleen voorbehouden aan links. @TS: document.write zal altijd een nieuw document starten. Behalve tijdens het inladen van de pagina, op dat moment kan je nog onderdelen op deze wijze aan de document tree toevoegen. Je zal het dus op een andere manier moeten oplossen. Misschien moet je eens kijken naar de mogelijkheden om dynamisch bepaalde properties van een images te wijzigen (bijv. de src en de eventhandlers). Voorbeeldje: [code:1:16df6fd32a] <script type="text/javascript"> function toggleAudio(img) { if (audioOn == true) { img.src = "off.gif"; img.onmouseover = function () { swap(21,sound_ona); audioDo('play', 'Beep'); } // enz. } else { img.src = "on.gif"; img.onmouseover = function () { swap(21,sound_offa); audioDo('play', 'Beep'); } // enz. } audioOn = !audioOn; } </script> <img src="on.gif" onclick="toggleAudio(this)" onmouseover="swap(21,sound_offa); audioDo('play', 'Beep');" /> [/code:1:16df6fd32a] p.s. code is alleen maar bedoeld als voorzetje en geen kant-en-klaar-maaltijd ;)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.