Avatar billede hyperactive Nybegynder
29. august 2014 - 15:58 Der er 3 kommentarer

Javascript global variabel

Kan nogen svare mig på, hvorfor følgende virker fint:

var country;
       
geoip2.cityISPOrg(function (response) {
    country = response.country.names.en;
    alert(country)

}, null, { w3cGeolocationDisabled: true });   

Men flytter jeg alerten udenfor, sådan:

var country;
       
geoip2.cityISPOrg(function (response) {
    country = response.country.names.en;
}, null, { w3cGeolocationDisabled: true });   
    alert(country)

Så virker det ikke. Jeg skal bruge country variablen i en anden function.
Avatar billede keysersoze Guru
29. august 2014 - 17:53 #1
Et gæt er at cityISPOrg køres async så din alert bliver kørt før værdien er blevet tildelt. Benyt din developer toolbar til at se om værdien er noget senere hen.
Avatar billede Kerasit Nybegynder
15. december 2014 - 16:19 #2
Og hvis den først kommer senere, så sæt en interval omkring din kode, således at du først forsøger at læse den når den er tilgængelig (og selvfølgelig eksekverer clearInterval(myInterval) når værdien er tilgængelig).
Avatar billede keysersoze Guru
15. december 2014 - 17:03 #3
timeouts og intervaller skal helst undgås - den bedste løsning er at kalde den eller de andre funktioner på ovenstående metodes onSuccess.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester