11. august 2007 - 00:13Der er
11 kommentarer og 1 løsning
window.onload virker kun sjældent i en ekstern js-fil IE
Hej Eksperter.
Jeg sidder og arbejder på en WYSIWYG-editor, som skal loade sin opbygning og nogle moduler dynamisk. Dette virker fint - til dels.
Mit problem er, at jeg benytter mig af en masse eksterne javascript-filer, så jeg slipper for en masse grim kode på selve siden. Når jeg i en fil (som er blevet inkluderet af en anden fil, der også er blevet inkluderet) bruger:
window.onload=function(){ alert("Fisk!") }
har jeg et problem i IE! Når jeg går ind på siden, vises Alerten slet ikke. Opdaterer jeg siden, sker der stadig intet. Når jeg så sætter cursoren i adresselinjen og trykker enter, bliver denne funktion kørt! (I min rigtige kode, køres ikke en alert, men en funktion, som sætter hele editoren op.... Derfor er denne fejl lidt skidt!)
Så jeg kan altså få editoren til at virke, ved bare at trykke enter i adresselinjen, og i øvrigt også, når jeg submitter en form på siden.
Derudover virker det altid fint, når jeg kører siden direkte fra min computer, og når jeg kører den i Firefox, _også_ på nettet.
Hvorfor reagerer den ikke på window.onload? Jeg har også prøvet med alt muligt attachEvent med samme resultat. Jeg får ingen fejlmeddelelse, den kører bare ingenting. Ret skidt at sidde fast her, når jeg nu har arbejdet på den i flere uger.
Nogen som kan hjælpe mig med dette store problem? På forhånd tak!
Næh, window.onload virker ellers altid. Dvs. jeg bruger ikke IE, men andre har ikke problemer med det jeg laver - ikke af den grund i hvert fald... ;) Så det er nok en anden fejl...
Jeg er bange for, det ikke holder i mit tilfælde, Ole. Jeg gør allerede med modulerne som du siger, dvs. den del med at kalde moduleLoaded.
Jeg inkluderer alle filer i head-sektionen af koden. I en af disse filer ligger så denne funktion, som skal køres, lige så snart, body er loadet færdig. Denne funktion sætter skub i opsættelsen af editoren. Dvs. den indsætter en tabel, som indeholder et iframe. Derefter indsættes alle moduler over iframen som klikbare ikoner. Og jeg kan jo ikke indsætte modulerne, før jeg har et sted, de kan være.
Så derfor skulle min funktion gerne aktiveres ved window.onload - hvilket også virker halvdelen af gangene, og det virker altid, hvis man skriver den direkte ude i hovedfilen uden at inkludere fra en js-fil.
Men hvorfor den ikke vil køres de fleste gange inde fra den eksterne fil, er for mig en stor gåde.
Hmmm. Jeg har flyttet en del af koden ud i den først inkluderede fil og alt virker bare nu med window.onload. Ellers tak! :)
Jeg lukker her så! Note to self: brug ikke window.onload i en fil, der er inkluderet i en fil, der er inkluderet i en fil. =)
Synes godt om
Ny brugerNybegynder
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.