我想抓住用户滚动facebook app的画布iframe。我试过了:
$(window).scroll(...)
$(document).scroll(...)
$(parent).scroll(...)
$(parent.document).scroll(...)
但它没有开火。
答案 0 :(得分:6)
我认为你的意思是当用户滚动主页而不是iframe时,是否正确?
您不能直接执行此操作,您必须使用http://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/中描述的FB.Canvas.getPageInfo。您不能将其“捕获”为事件,但您可以使用setInterval或类似方法轮询滚动值以检测页面位置何时更改。
答案 1 :(得分:2)
正如@Floyd所说,滚动事件不会触发(假设您隐藏了iframe滚动条),因为您的应用程序位于Facebook内的iframe中。
您可以使用FB.Canvas.getPageInfo
{{3}检测用户在页面上的滚动位置(Facebook,而不是您的应用 - 因此除非您考虑标题和浮动标题,否则它将不会完全准确)但是你必须在想要检查用户滚动位置时轮询事件,这样你就可以在setInterval
的计时器上设置它。
我刚为这个目的创建了一个插件,用于我的一个Facebook应用程序。要使用它,您只需在window.fbAsyncInit函数之后以及加载Facebook Javascript SDK之前包含该插件。
您可以订阅Facebook事件“滚动”或收听dom事件“fb-scroll”,其中两个参数将被传递“topPercent”和“bottomPercent”,然后根据用户滚动位置调用您自己的函数。
http://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/
示例:
// 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
}
});
答案 2 :(得分:1)
我认为你不允许这样做,我猜它与{{3}中的“配置文件接管”类似} 部分。
至于我知道,您只能更改父网址:top.location.href