繁体   English   中英

阻止fb.ui()滚动浏览器

[英]Preventing fb.ui() from scrolling the browser

我正在使用iframe处理Facebook画布页面应用程序。 我正在使用fb.ui()创建一个用于共享的对话框,但是当对话框打开时,它首先居中,然后一旦异步调用加载对话框,它就会将对话框移动到iframe的顶部并滚动浏览器到顶部。

我考虑使用jQuery来重新定位盒子,但是我还必须滚动浏览器位置,这对我来说是尖叫。 任何建议将不胜感激。

有同样的问题,在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>

对于遇到这个问题的其他人,只是重申Jonathan Tran上面关于这个报告错误的评论,它已经被Facebook修复,但仅限于SHARE对话框。 如果你仍然遇到这个问题,你可能正在从你的Javascript调用FEED对话框,Facebook还没有打扰修复。 用这个:

FB.ui({
        method: 'share',
        ...

不是这个:

FB.ui({
        method: 'feed',
        ...

我正在使用jquery获取滚动位置,然后在响应函数中设置它。

scroll = $(window).scrollTop();
FB.ui(
{
//setup
},
function(response)
{
//handle response
$(window).scrollTop(scroll);
});

改善Nate的想法......

    window['__sy'] = $(window).scrollTop();
    FB.ui(
    {
    //setup
    },
    function(response)
    {
    //handle response
    });
    $(window).one('scroll',function (){$(window).scrollTop(window['__sy'])});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM