位置:固定のDOMエレメントを持っており、facebookキャンバスアプリに流体キャンバスサイズで固定されています。アプリはキャンバスのiframeで実行されるため、CSSの位置の簡単な使用方法:fixedは機能しません。iframeのコンテンツには、周囲のFacebookページからのスクロールイベントは表示されません。位置:facebookキャンバス(iframe)で固定
これを解決するための最初のアプローチは、facebook apiにpingしてスクロール位置を取得することでした。これを$(document).ready()に入れます:
# refresh position of feedback button to simulate position:fixed in iframe
refresh_timer = 1000
move_button =() ->
# get scroll position from facebook
FB.Canvas.getPageInfo (info)->
# animate button to new position with an offset of 250px
$('#fdbk_tab').animate({top: info.scrollTop+250}, 100)
# start interval to do the refresh
setInterval(move_button, refresh_timer)
一般にこれは機能します。ただし、facebook apiへの呼び出しがトリガーされると、ブラウザのリロードボタンとマウスカーソルが点滅するため、ユーザーエクスペリエンスが低下します。
これを改善する方法や他の方法を実装する方法については、iframe内で修正してください。
回避策として、固定高さキャンバスアプリに切り替えました。このように、iframeには独自のスクロールバーと位置があります。しかし、このアプローチにはいくつかの小さな欠点があります。だから私はまだ流体の高さのアプリで問題を解決するために何かができるかどうか興味があります。 –
同じ方法でFacebook iFrameの固定要素を配置しようとしましたが、新しい問題に直面しているようです - >開発者コンソールに表示されるのは "Uncaught SecurityError:原点" mydomain.com "アクセスするフレームは "document.domain"を "facebook.com"に設定しますが、アクセスを要求するフレームは同じではありません。 "あなたもこれに遭遇しましたか? –