2011-10-07 6 views

答えて

6

私は、ユーザーが正しいメインページではなく、インラインフレームを、スクロールされたときにキャッチする意味はないでしょうか?

これを直接行うことはできません。FB.Canvas.getPageInfoをhttp://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/という名前で使用する必要があります。イベントとして「catch」することはできませんが、setIntervalなどを使用してスクロール値をポーリングして、ページ位置が変更されたときに検出することができます。

+0

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

1

私はあなたがこれを行うには許可されないある考える、私はそれがProhibited Functionalityセクションの「プロファイルの買収」と同様だと思います。

限りとして私が知っている、することができますのみ変更親URL:top.location.href

2

@Floydは、あなたのアプリがFacebook内のiframe内にあるので、スクロールイベントは発生しません(iframeスクロールバーを隠していると仮定して)。

あなたは、ユーザーがページ上の位置をスクロール検出することができます(Facebookのではなく、あなたのアプリ - あなたは、ヘッダーとアカウントへの浮動ヘッダを取っていない限り、それは完全に正確ではありません)FB.Canvas.getPageInfohttp://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/を使用していますが、ポーリングする必要がありあなたがスクロール位置を確認したい場合は、setIntervalのタイマーで設定することができます。

私は、この目的のためにFacebookアプリケーションの1つで使用するためのプラグインを作成しました。それを使用するには、window.fbAsyncInit関数の後で、Facebook Javascript SDKをロードする前にプラグインをインクルードするだけです。

Facebookイベント「スクロール」を購読するか、「topPercent」と「bottomPercent」という2つのパラメータが渡され、ユーザーのスクロール位置に基づいて独自の関数を呼び出すdomイベント「fb-scroll」を聞くことができます。

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 
    } 
}); 
関連する問題