Jak mogę zapobiec funkcji Facebook Connect isUserConnected z systemem dwukrotnie w jQuery?

głosy
0

Mam mały problem z integracją Facebooka.

Kiedy moi użytkownicy klikają link, funkcja sprawdza, czy użytkownik jest zalogowany na Facebooku. Jeśli nie jesteś zalogowany, ustawić kawałek danych, a następnie uruchomić Facebook login rzeczy. Kiedy wraca, że ​​Facebook zalogować, idę sprawdzić fragment danych, który został zapisany i uruchomić pierwotną funkcję wybrali.

Problem:

Funkcja Facebook uruchamia dwa razy. Istnieją pewne komentarze na ich forach o tym problemie, ale wydaje się to było problemem od początku połączyć, a nie jest ona skierowana.

Więc nie chcę czekać na Facebooku. Czy jest jakiś sposób dla mnie, aby zapobiec funkcję z nazywając mój funkcji więcej niż raz?

Mogę ustawić coś, co mówi „uruchom raz”? Problemem jest, że raz działa raz, jeśli użytkownik kliknie ponownie, trzeba będzie uruchomić go ponownie, więc nie mogę całkowicie wyłączyć funkcję (nawet gdyby to było możliwe).

Utwórz 05/03/2009 o 05:53
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Jest to dość Hack-owski, ale powinno obejść problem z Facebook dwukrotnie nazywając swoją funkcję. Ponieważ nie ma kodu, mam zamiar zrobić trochę się do tego celu mojego rozwiązania. Ponadto, jestem przy założeniu, że kod Facebook login ma zwrotnego (jak inaczej byłoby nazywając swoją funkcję dwukrotnie?).

// This function is what is called when the link is clicked
// funToRun - the function that should be run after login is confirmed.
// params - parameters to pass to fToRun, as an array
clickWrapper = function(funToRun, params)
{
    // Keeps track of the state of the click
    var doFunction = true;

    var callback = function()
    {
        if (doFunction)
        {
            funToRun.apply(this, params);
            doFunction = false;
        }
    }

    // The facebook 
    facebookLogin(callback);
}

W tym rozwiązaniu, jesteś zawijania funkcję, którą chcesz uruchomić w zwrotnego, który będzie uruchamiany tylko raz, ponieważ doFunction zapobiegnie przyszłym zwrotnych od robienia czegokolwiek. Jednak to będzie działać co najmniej raz każdym razem, gdy użytkownik kliknie, ponieważ doFunction jest zarządzany lokalnie (a zatem jest prawdą, raz za każde kliknięcie).

Odpowiedział 05/03/2009 o 06:24
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more