我正在使用iframe创建一个Facebook画布页面应用程序。 我正在使用fb.ui()创建一个对话框来分享,但是当对话框打开时,它首先居中,然后一旦异步调用加载对话框,它会将对话框移到iframe的顶部并将浏览器滚动到顶部。
我考虑使用jQuery重新定位框,但我还必须滚动浏览器位置,这让我感觉像是一个hack。 如有任何建议,将不胜感激。
我正在使用iframe创建一个Facebook画布页面应用程序。 我正在使用fb.ui()创建一个对话框来分享,但是当对话框打开时,它首先居中,然后一旦异步调用加载对话框,它会将对话框移到iframe的顶部并将浏览器滚动到顶部。
我考虑使用jQuery重新定位框,但我还必须滚动浏览器位置,这让我感觉像是一个hack。 如有任何建议,将不胜感激。
我也遇到了同样的问题,iFrames中的定位很麻烦。保持对话框正确定位的最简单方法是使用弹出显示选项,它会在当前页面中心上方弹出一个新的浏览器窗口。虽然不太美观,但效果很好。
//generic sharing function
var fbshare = function(url, display) {
var share = {
method: 'stream.share',
u: url,
display: display
};
FB.ui(share);
};
//share using popup
<a href="#fbshare" onClick="fbshare('http://www.theurl.com','popup');">Share</a>
scroll = $(window).scrollTop();
FB.ui(
{
//setup
},
function(response)
{
//handle response
$(window).scrollTop(scroll);
});
FB.ui({
method: 'share',
...
不要这个:
FB.ui({
method: 'feed',
...
改进 Nate 的想法...
window['__sy'] = $(window).scrollTop();
FB.ui(
{
//setup
},
function(response)
{
//handle response
});
$(window).one('scroll',function (){$(window).scrollTop(window['__sy'])});