如何调整FB.ui流发布对话框的位置

时间:2011-02-14 10:21:06

标签: php javascript facebook

我在facebook中使用FB.ui方法显示流发布框如下:

function showfeed()
{
   var publish = {
    method: 'stream.publish',
    attachment: {
        name: 'XYZ',
        caption: 'caption here',
        description: ('description'),
        href: 'url',
        media: [{
            type: 'image',
            href: 'url',
            src: 'xyz.gif'
        }]
    },
    action_links: [{ text: 'XYZ', href: 'url' }]
    };  

   FB.ui(publish,null);
}

这样工作正常,但我的页面高度非常长,所以当我点击按钮显示此对话框时,它显示在页面的中心而不是顶部,所以即使对话框显示在中心,它也不会显示给我,因为我在顶部。是否有任何人可以看到它在顶部的位置对话框。

2 个答案:

答案 0 :(得分:8)

将以下代码添加到<style>。 [从其他论坛获得)希望有所帮助

div.fb_dialog_advanced+div.fb_dialog_advanced {
top:50px !important;
}

答案 1 :(得分:4)

div.fb_dialog_advanced+div.fb_dialog_advanced { top:50px !important; }不再有效。见:

1Old Solution

但是我已经解决了jQuery的问题。它有点像hacky,但它确实有效:

function move_to_top( value )
{
    $(".fb_dialog").each(function(index) {
        if($(this).css("top")!='-10000px') {
            $(this).css("top", value + 'px' );
        }
    });
    setTimeout( ('move_to_top("'+value+'");'), 1250);
}

function send_request()
{
    FB.Canvas.scrollTo(0,0);
    FB.ui({method: 'apprequests', message: 'Press accept to see this request.', data: 'tracking information for the user'},
        function(response) {
            if(response!=null)
            {
                alert('You are boss')   
            }
    });
    $(".fbProfileBrowserResult").ready( function(){
        t = setTimeout ( ('move_to_top("'+50+'")'), 1250 );
    }); 
}