[Jquery] callback

Gestart doorDylan9 reacties60 weergaven

10 berichten · pagina 1 van 1

Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Hoi,

Ik ben bezig met een one2xs chrome exstentie, alleen ik begrijp niet waarom dit zou werken:

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14

var userName;
userInfo: function(callback) {
$.ajax("http://one2xs.com/index.php", {
succes: function(a) {
userName = $(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1];
callback(userName);
console.log("debug: [username] => " + userName);
}
});
}

userInfo(function(userName)) {
alert(userName);
}

Ik krijg via console.log de gebruikersnaam ook niet te zienm, ook wanneer ik iets buiten de functie wil doen krijg ik geen alert of een undefined alert.

Link wat ik ook al geprobeerd heb:
http://stackoverflow.com/questions/1225667/how-to-return-ajax-response-text

Ziet iemand wat ik fout doe?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Je probeert een externe site op te roepen? Voeg eens een error-event toe?
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Aarclay schreef:
Je probeert een externe site op te roepen? Voeg eens een error-event toe?
Eigenlijks maak ik een chrome extention.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Aarclay schreef:
Je probeert een externe site op te roepen? Voeg eens een error-event toe?
Eigenlijks maak ik een chrome extention.
$.ajax("http://one2xs.com/index.php", {

waarin je een externe site op te roepen.

Als je debugt, zegt hij waarschijnlijk dat je geen rechten hebt om dat content op te halen.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Xjessex schreef:
Eerdere citaten tonen
Dylanh schreef:
Eerdere citaten tonen
Aarclay schreef:
Je probeert een externe site op te roepen? Voeg eens een error-event toe?
Eigenlijks maak ik een chrome extention.
$.ajax("http://one2xs.com/index.php", {

waarin je een externe site op te roepen.

Als je debugt, zegt hij waarschijnlijk dat je geen rechten hebt om dat content op te halen.
Het is geen externe site omdat ik het op one2xs uitvoer.

Ik heb nu dit:
Afbeelding

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10

function getUsername() {
$.ajax("http://one2xs.com/index.php", {
success: function(a) {
console.log($(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1]);
return $(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1];
}
});
}

console.log(getUsername());

Dylanh krijg ik van de console log (regel 4)
undefined krijg ik van console log (regel 10).

Hoe krijg ik dat getUsername() de gebruikersnaam returnt ipv undefined?

Ik weet dus dat regel 10 eerder uit word gevoerd dan regel 4, hoe kan ik dit veranderen?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Je voert het dan toch lokaal uit? En voeg eens een errorevent toe...
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Aarclay schreef:
Je voert het dan toch lokaal uit? En voeg eens een errorevent toe...
Ja,

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14

function getUsername() {
$.ajax("http://one2xs.com/index.php", {
success: function(a) {
console.log($(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1]);
return $(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1];
}

error: function(textStatus, errorThrown) {
console.log("debug: [error at username] =>" + textStatus + " " + errorThrown);
}
});
}

console.log(getUsername());

Er is geen error.

Ik weet dus dat regel 14 eerder uit word gevoerd dan regel 4, vandaar undefined, hoe kan ik de volgorde veranderen?
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Codeblok (voorbeeld.php):

1
2
3
4

success: function(a) {
console.log($(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1]);
return $(a).find("#left").html().match(/Je bent ingelogd als ([ ^A-z0-9]*)/)[1];
}

Dat is een aparte functie. Als je iets bij return zet, krijgt jQuery dat als waarde als hij de succes functie aanroept.
Hoe je die waarde wel via getUsername() returned, weet ik niet zo 1.2.3..
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Boven de functie var username, en in de functie dan username = ...
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Milan schreef:
Boven de functie var username, en in de functie dan username = ...
Ook al geprobeerd. Werkte niet. Ben hier al sinds vanochtend mee bezig geweest. Ik denk dat ik een chrome extentie wel laat, ik verzin wel wat anders.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren