javascript - preparar - lienzo para pintar con acrilico
¿Cómo atrapar el evento de desplazamiento dentro del marco de lienzo de Facebook? (3)
Intento atrapar cuando un usuario se desplaza por el lienzo iframe de la aplicación de Facebook. Lo intenté:
$(window).scroll(...)
$(document).scroll(...)
$(parent).scroll(...)
$(parent.document).scroll(...)
pero no dispara.
Como dijo @Floyd, los eventos de desplazamiento no se dispararán (suponiendo que esté ocultando las barras de desplazamiento iframe) ya que su aplicación se encuentra en un marco flotante dentro de Facebook.
Puede detectar la posición de desplazamiento de los usuarios en la página (Facebook, no su aplicación, por lo que no será completamente precisa a menos que tome el encabezado y el encabezado flotante en la cuenta) mediante FB.Canvas.getPageInfo
http: //developers.facebook .com / docs / reference / javascript / FB.Canvas.getPageInfo / pero debe sondear el evento cuando quiera verificar la posición de desplazamiento de los usuarios, para que pueda configurarlo en un temporizador con setInterval
.
Acabo de crear un complemento para este propósito para usar en una de mis aplicaciones de Facebook. Para usarlo, todo lo que debes hacer es incluir el complemento después de la función window.fbAsyncInit y antes de cargar el Javascript SDK de Facebook.
Puede suscribirse al evento de Facebook "scroll" o escuchar el evento dom "fb-scroll", que se pasarán dos parámetros "topPercent" y "bottomPercent" y luego invocará sus propias funciones según la posición de desplazamiento del usuario.
https://github.com/kus/facebook-app-scroll-event
Ejemplo:
// 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
}
});
Creo que quieres decir catch cuando el usuario está desplazándose por la página principal, no el iframe, ¿correcto?
No puede hacerlo directamente, deberá usar FB.Canvas.getPageInfo como se describe en http://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/ . No puede "atraparlo" como un evento, pero puede sondear los valores de desplazamiento usando setInterval o similar para detectar cuándo ha cambiado la posición de la página.
Creo que no se te permite hacer esto, supongo que es similar a la " Toma de Perfil " en la sección de Funcionalidad Prohibida .
Por lo que sé, solo puedes cambiar la URL principal: top.location.href