我使用iframe在Facebook画布页面应用程序上工作。我使用fb.ui()创建一个用于共享的对话框,但是当对话框打开时,它首先居中,然后一旦异步调用加载对话框,它就会将对话框移动到顶部iframe并将浏览器滚动到顶部。
我考虑使用jQuery来重新定位盒子,但是我还必须滚动浏览器位置,这对我来说是尖叫。任何建议都将不胜感激。
答案 0 :(得分:1)
有同样的问题,在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>
答案 1 :(得分:0)
我正在使用jquery获取滚动位置,然后在响应函数中设置它。
scroll = $(window).scrollTop();
FB.ui(
{
//setup
},
function(response)
{
//handle response
$(window).scrollTop(scroll);
});
答案 2 :(得分:0)
对于遇到此问题的任何其他人,只是重申Jonathan Tran上面关于this reported bug的评论,它已由Facebook修复,但仅适用于SHARE对话框。如果你仍然遇到这个问题,你可能正在从你的Javascript调用FEED对话框,Facebook还没有打扰修复。使用此:
FB.ui({
method: 'share',
...
不是这个:
FB.ui({
method: 'feed',
...
答案 3 :(得分:-1)
改善Nate的想法......
window['__sy'] = $(window).scrollTop();
FB.ui(
{
//setup
},
function(response)
{
//handle response
});
$(window).one('scroll',function (){$(window).scrollTop(window['__sy'])});