2011-10-07 12 views

Odpowiedz

6

Chyba masz na myśli złapać, gdy użytkownik jest przewijanie strony głównej, a nie iframe, prawda?

Nie możesz tego zrobić bezpośrednio, będziesz musiał użyć FB.Canvas.getPageInfo jako opisanego pod adresem http://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/. Nie można go "złapać" jako zdarzenia, ale można wypytać wartości przewijania za pomocą metody setInterval lub podobnej, aby wykryć zmianę pozycji strony.

+0

http://developers.facebook.com/bugs/355414417803241?browse=search_4f334ef27016b2834810708 –

1

myślę jesteś nie wolno to zrobić, myślę, że to podobna do "Profile Takeover" w sekcji Prohibited Functionality.

miarę wiem, można tylko zmiana URL parent: top.location.href

2

Ponieważ @Floyd powiedział, że zdarzenia przewijania nie zostaną uruchomione (zakładając, że ukrywasz paski przewijania elementów pływających), ponieważ Twoja aplikacja znajduje się w elemencie iframe wewnątrz Facebooka.

Możesz wykryć, jak użytkownicy przewijają pozycję na stronie (Facebook, nie Twoja aplikacja - aby nie była całkowicie dokładna, chyba że bierzesz pod uwagę nagłówek i pływający nagłówek), używając FB.Canvas.getPageInfohttp://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/, ale musisz odpytać Zdarzenie, gdy chcesz sprawdzić pozycję przewijania użytkowników, aby móc ustawić go na liczniku czasu pod numerem setInterval.

Właśnie stworzyłem wtyczkę do tego celu do wykorzystania w jednej z moich aplikacji na Facebooku. Aby go użyć, wystarczy włączyć wtyczkę po funkcji window.fbAsyncInit i przed załadowaniem pakietu SDK Facebooka JavaScript.

Możesz zapisać się do wydarzenia na Facebooku "przewiń" lub posłuchaj zdarzenia dom "fb-scroll", które dwa parametry będą przekazywane "topPercent" i "bottomPercent", a następnie wywołaj własne funkcje w oparciu o pozycję przewijania użytkowników .

https://github.com/kus/facebook-app-scroll-event

przykład:

// Subscribe to custom Facebook event 
FB.Event.subscribe('scroll', function(topPercent, bottomPercent){ 
    console.log('scroll', topPercent, bottomPercent); 
}); 

// Listen to dom event with jQuery 
jQuery(document).on('fb-scroll', function(evt, topPercent, bottomPercent){ 
    if(bottomPercent == 100){ 
     // load more content 
    } 
});