Autor Zpráva
Releas
Profil *
Zdravim
Prave delam mensi scriptik, ktery ma nahrat urcita data z jine stranky. Vypada nějak takhle:
var Nahrat = function () {
    var client = new XMLHttpRequest();
    client.open('GET', 'script.php?r='+Math.random());
    client.onreadystatechange = function() {
      if (this.readyState == 4) {
        Promenna = client.responseText;
    }
    client.send();
  }


Problem je, že se ten text zapisuje až v dalsi f-ci, kterou definuju v client.onreadystatechange, takze hodnotu nemuzu vratit returnem v puvodni f-ci, coz bych potreboval. Abych pote moho napsat jenom
Promenna = Nahrat();

Nevite prosim jak na to?
Dekuji.
ShiraNai7
Profil
Volejte onu funkci až z funkce client.onreadystatechange.
Releas
Profil *
Ale to uz je pozde.
Potrebuju to mit napsane tak, aby ta funkce obshovala zalozeni klienta v sobe a aby dokazala ziskanou hodnotu vratit. Kdyby to neslo, tak samozrejme si budu muset poradit jinak, ale zatim mi to nikdo nevyvratil. Jenom nevedeli jak na to.
Chamurappi
Profil
Reaguji na Release:
Nějak to jde. Ale důrazně nedoporučuji, po dobu načítání (která se může protáhnout) to zasekává prohlížeč.
Víš, že můžeš předávat jako argument funkci? Optimální postup je volat něco jako:
Nahrat(function(text)
{
  alert("Server vrátil: " + text);
});

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: