JarlG Skrevet 4. september 2009 Del Skrevet 4. september 2009 (endret) Hei! Det har seg slik at eg har ein ting eg ikkje finn ut av. Pleier som regel å implementere ein "onclick = function()" i HTMLen for å køyre funksjonen når eit element trykkjast på, men har som prinsipp at CSS ikkje går inn i HTMLen, og vil ha det same med Javascript. Altså, at eg setter "src = 'javascript.js' ", og alt blir ordna av Javascripten. Tenkte da fyst at dersom eg skulle gjere det her med eit element med " id = 'button1' ", så ville dette fungere: document.getElementById("button1").onclick = alert("Hei"); men iom. at scripten blir loadet før HTMLen, så blir "document.getElementById('button1')" lik 'null'. Dette duger da ikkje. Prøvde så å sette inn 'defer' i script-tagen, men dette fungerte i kvartfall ikkje i Firefox. Prøvde så ein alternativ metode for å laste scriptet etter HTMLen; <script type="text/javascript"> var newScript = document.createElement("script"); newScript.type = "text/javascript"; newScript.src = "javascript.js"; document.getElementsByTagName("head")[0].appendChild(newScript); </script> Dette lastet scriptet, og error console viser ingenting om at "document.getElementById('button1') = null". Merkeleg nok, så fungerer det fortsatt ikkje. Med ein gong sida er ferdiglasta, så hoppar det opp ein boks der det står 'Hei', utan at eg har klikka på knappen. Dersom eg klikkar på knappen, så skjer det absolutt ingenting. Kva er problemet? PS: Eg er ny, så forklar kva dykk gjer. Takk! EDIT: Problem solved. Må ikkje bruke ein function call, men berre return-verdien til funksjonen som skal tildeles .onclick'en. Endret 5. september 2009 av JarlG Lenke til kommentar
cbastus Skrevet 18. september 2009 Del Skrevet 18. september 2009 Å legge til JS på den måten du gjør her er ganske bakvendt. Ønsker du at funksjonene fra JS i HEAD skal lastes når siden er ferdig burde du heller bruke en eventHandler som setter onLoad på BODY. Alternativt kan du bare inkludere JS i bunn av dokumentet ditt på samme måte som du gjør i HEAD. Dette er også god skikk iht. optimalisering da innholdet lastes fortere slik at din bruker kan begynne å lese før funksjonene er klare. Eneste problemet som kan forekomme her er om JS avhengige deler av nettsiden fordrer klikk før siden er ferdiglastet. I dette tilfellet kan du legge til JS både i HEAD og mot enden av dokumentet. Referanse: http://developer.yahoo.com/performance/rules.html#js_bottom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå