我想抓住當用戶滾動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 –