我想抓住当用户滚动Facebook应用程序的画布iframe。我试过:如何捕捉Facebook画布框架内的滚动事件?
$(window).scroll(...)
$(document).scroll(...)
$(parent).scroll(...)
$(parent.document).scroll(...)
但它不会触发。
我想抓住当用户滚动Facebook应用程序的画布iframe。我试过:如何捕捉Facebook画布框架内的滚动事件?
$(window).scroll(...)
$(document).scroll(...)
$(parent).scroll(...)
$(parent.document).scroll(...)
但它不会触发。
我想你的意思是,当用户滚动主页,而不是iframe中,正确的收获?
你不能直接做,你将不得不使用FB.Canvas.getPageInfo,如http://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/所述。您不能将它“捕捉”为事件,但您可以使用setInterval或类似的轮询滚动值来检测页面位置已更改。
我认为你不不允许这样做,我想这是类似于Prohibited Functionality节“档案接管”。
至于我知道,你只能变化父网址:top.location.href
由于@Floyd表示,由于您的应用位于Facebook内部的iframe中,滚动事件不会触发(假设您隐藏了iframe滚动条)。
您可以检测用户位置滚动页面上(Facebook的,不是你的应用程序 - 所以,除非你把标题和浮动头进去也不会完全准确)通过使用FB.Canvas.getPageInfo
http://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/但你必须轮询事件,当你想检查用户滚动位置,所以你可以设置它在一个定时器setInterval
。
我刚刚为此创建了一个插件用于我的一个Facebook应用程序。要使用它,只需在window.fbAsyncInit函数之后并在加载Facebook Javascript SDK之前包含插件。
您可以订阅Facebook事件“滚动”或收听dom事件“fb-scroll”,其中两个参数将通过“topPercent”和“bottomPercent”,然后根据用户滚动位置调用您自己的功能。
https://github.com/kus/facebook-app-scroll-event
实施例:
// 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
}
});
http://developers.facebook.com/bugs/355414417803241?browse=search_4f334ef27016b2834810708 –