FB.Canvas.getPageInfo不起作用

时间:2012-03-14 12:30:41

标签: facebook facebook-javascript-sdk

我正在使用FB应用程序并使用FB.Canvas.getPageInfo来获取画布的滚动以在屏幕中心设置弹出窗口,因为应用程序不是滚动而是滚动的fb画布并找到中心在长页面上的屏幕我需要获得画布滚动的像素数,然后用一些加减去我获得当前页面位置的屏幕中心。直到昨天工作正常,但从早上开始,我已经尝试了很多但尚未成功。

setTimeout函数中调用代码,直到收到值为止,我强行将弹出窗口显示为无,并显示加载器图像。

记住它工作正常,直到昨晚

这是代码

$('.popup-call-local').live('click', function(event){

        //FB.Canvas.getPageInfo(function(info){alert(info.scrollTop);});
        var view_name = this.id;

        var check_view_name = view_name.replace(/_/g, '-');

        if($('#'+check_view_name).length > 0){
            $('#popupDiv').css('height',$('.wrap').css('height'));
            $('#popupDiv').css('display','block');
            $('#popupDiv').css('z-index',1000);
            var x = Number((window.screen.width - 400) / 2);
                var y = Number(event.pageY)+ 10;
                $('#popupDiv').html('<img src="<?php echo base_url(); ?>images/loaderblack.gif"  style="position:absolute; z-index:50000; left:'+x+'px; top:'+y+'px;" />');

            $('#'+check_view_name).css('z-index',2000);
            var viewportHeight = window.screen.height;
            var windowScrolled = -1;
        $foo = jQuery('#'+check_view_name),
        elWidth = $foo.width(),
        elHeight = $foo.height(),
        elOffset = $foo.offset();
        setTimeout(function(){FB.Canvas.getPageInfo(function(info){windowScrolled=info.scrollTop;  while(windowScrolled == -1){
            $('#'+check_view_name).css('display','none');}
            var v = (((viewportHeight - elHeight) / 2) + (windowScrolled) - 100); if(v<=0){v=Number(v)*Number(-1);}$('#popupDiv').html('');$('#'+check_view_name).css('display','block');$('#spinner').css('display','none');$('#'+check_view_name).css('top', Number(v) + 'px');});}, 3000);
        }else{

             return false;
        }
    });

EDIT 井

刚刚发现它在这里报道了一个facebook bug http://developers.facebook.com/bugs/185097921606322?browse=search_4f60961cc946d7143000700

0 个答案:

没有答案