Przekazanie parametru do funkcji onreadystatechange

Regulamin działu
Kolorowanie składni :
[php][/php], [sql][/sql], [html][/html], [css][/css], [js][/js], [python][/python], [perl][/perl], [ruby][/ruby], [xml][/xml], [xsl][/xsl]

Przekazanie parametru do funkcji onreadystatechange

Postprzez kodziek 18 paź 2009, o 22:36

Tak wiec jak w temacie.
Potrzebuje przekazac parametr, a niestety onreadystatechange jest przekazywane przez referencje, a nie jest tak jakby wywolywania i nie mam jak przekazac parametru a bylby mile widziany...

Pozdrawiam
Tw. Trzech Typow: ∫ arcsin(n·x) = x·arcsin(n·x) + √(1 - n²·x²)/n
Obrazek

Avatar użytkownika
kodziek
 
Posty: 25
Dołączył(a): 18 wrz 2009, o 15:42
Lokalizacja: Zdunska Wola / Lodz

Re: Przekazanie parametru do funkcji onreadystatechange

Postprzez zbt 19 paź 2009, o 18:59

Zapewne wykonujesz cos na wzór:
Kod: Zaznacz cały
  1. req.onreadystatechange = foo; // Gdzie foo to Twój callback

W takich warunkach nie przekażesz niczego funkcji. Najprostsze rozwiązanie:
Kod: Zaznacz cały
  1. req.onreadystatechange = function()
  2. {
  3.    if(req.readyState == 4) foo(arg1, arg2, ...., argN);
  4. }


Pozdro
Tyle jesteś wart, ile od siebie możesz dać...

Avatar użytkownika
zbt
 
Posty: 44
Dołączył(a): 28 lip 2009, o 13:08
Lokalizacja: /etc/hosts

Re: Przekazanie parametru do funkcji onreadystatechange

Postprzez kodziek 19 paź 2009, o 23:03

Tak, ale AFAIK zeby do foo() przekazac te argumenty, to musza one jakos sie znalezc w function() wiec i do function trzeba je przekazac, a nie wiem czy to tak za bardzo zadziala :>
Tw. Trzech Typow: ∫ arcsin(n·x) = x·arcsin(n·x) + √(1 - n²·x²)/n
Obrazek

Avatar użytkownika
kodziek
 
Posty: 25
Dołączył(a): 18 wrz 2009, o 15:42
Lokalizacja: Zdunska Wola / Lodz

Re: Przekazanie parametru do funkcji onreadystatechange

Postprzez zbt 19 paź 2009, o 23:45

Twój błąd :D Nie musisz podawać tam argv, bo nie wywolujesz funkcji tylko ją tworzysz, zatem masz prawo korzystania ze zmiennych w przestrzeni tworzenia tej funkcji. Zmienne te zostaną zastąpione wartościami stałymi w momencie wywołania funkcji, a raczej referencji do niej. JS ma swoje prawa, rodem z programowania extremalnego ^^

Tutaj PoC, sprawdź źródło.

Jeśli jednak czujesz sie na siłach, to sugeruję incremental development, w Twoim przypadku na zasadzie:
Kod: Zaznacz cały
  1. XMLHttpRequest.prototype.myCallOnState = function() // __construct
  2. {
  3.    // do dzieła [;
  4. }


Pozdro
Tyle jesteś wart, ile od siebie możesz dać...

Avatar użytkownika
zbt
 
Posty: 44
Dołączył(a): 28 lip 2009, o 13:08
Lokalizacja: /etc/hosts

Re: Przekazanie parametru do funkcji onreadystatechange

Postprzez kodziek 20 paź 2009, o 00:14

Mhm, przetestuje, nie wiedzialem, ogolnie w js/ajax nie jestem zbyt ogarniety, wiec dzieki za pomoc ;]
Tw. Trzech Typow: ∫ arcsin(n·x) = x·arcsin(n·x) + √(1 - n²·x²)/n
Obrazek

Avatar użytkownika
kodziek
 
Posty: 25
Dołączył(a): 18 wrz 2009, o 15:42
Lokalizacja: Zdunska Wola / Lodz


Powrót do JS/JSON/AJAX

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 0 gości

cron