Indlæs javascript dynamisk (google maps)

Tags:    javascript

Hej.

Jeg har en side der indeholder 4 faneblade, og under kontakt ønsker jeg at vise et google map, men syndes ik der er nogen grund til at indlæse det før brugeren trykker på det faneblad, da det måske sker i 1 ud af 10 tilfælde.

jeg har prøvet:

Fold kodeboks ind/udJScript kode 


men jeg får denne fejl;
google.maps.LatLng is not a constructor
...tlng = new google.maps.LatLng(this.options.startPoint.lat, this.options.startPoi... @ google_maps.js (line 70)

det virker helt fint hvis jeg indlæser de 2 javascript på siden, alså uden denne kode. - så som om at min google_maps.js ikke kan se at den anden fil fra google server er blevet indlæst.

nogle bud, på en løsning?



Indlæg senest redigeret d. 14.04.2012 14:57 af Bruger #3427
6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
hvis du alligevel bruger jquery .. hvorfor så ikke bruge $.getScript ? .. jeg er nemlig ikke sikker på onload virker på et script .. og du får sikkert fejlen fordi, du kalder nogle funktioner på dit script inden det er loadet helt færdigt



skal du lave mere avanceret lazy script loadling / asyncron script loading kan du evt. kigge på:

http://yepnopejs.com/ (Script loader)
http://headjs.com/ (All round script loader)
https://github.com/unscriptable/curl (AMD loader og "lazy loader")
http://requirejs.org/ (AMD loader)



Indlæg senest redigeret d. 14.04.2012 15:10 af Bruger #17081
hvis du alligevel bruger jquery .. hvorfor så ikke bruge $.getScript ? .. jeg er nemlig ikke sikker på onload virker på et script .. og du får sikkert fejlen fordi, du kalder nogle funktioner på dit script inden det er loadet helt færdigt


Ved faktisk ikke lige hvorfor jeg ik bruger den, havde glemt den var der :)

har lige prøvet, men giver samme fejl.

edit:

har lige prøvet:
Fold kodeboks ind/udJScript kode 


så mit gæt er pga cross-site scripting halløj bliver google scriptet ikke indlæst.



Indlæg senest redigeret d. 14.04.2012 15:31 af Bruger #3427
du skal kalde dit script inde i callbacken på google api kaldet.. ellers bliver de to scripts loadet på samme tid



du skal kalde dit script inde i callbacken på google api kaldet.. ellers bliver de to scripts loadet på samme tid


ved jeg godt, var bare for at vise hvad der kom retur, kørte dem enkeltvis de kode stumper. :)



det kan jo være der faktisk er en fejl i dit script så jo >_<

edit:
Hmn, det ser ud til, at http://maps.googleapis.com/maps/api/js?sensor=false også laver et script kald, så bare fordi den returnere og er loadet. Så betyder det ikke, at selve scriptet er klar, kan det mon være fejlen?


Prøv, at loade google scriptet uden, at loade dit eget. Og se om du evt. bare kan skrive:
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
i consolen?



Indlæg senest redigeret d. 14.04.2012 16:04 af Bruger #17081
Har løst det på en anden måde.


Fold kodeboks ind/udJScript kode 




Indlæg senest redigeret d. 14.04.2012 16:38 af Bruger #3427
t