0

FB.Canvas.getPageInfoFacebookのjavascriptSDKから適切に使用する方法を理解するのに助けが必要です。

https://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/

情報を取得し、データをログに記録/アラートすることができます。

function getFbCanvasInfo() {
    FB.Canvas.getPageInfo(function(fbCanvasInfoObject) {
    console.log(fbCanvasInfoObject);
    });
}

$("a.GetScrollTest").live( "click", function() {
    getFbCanvasInfo();
    return false;
});

しかし、そのデータを設定して、それを他の要素や関数に適用する方法を理解することはできません(つまり、以下のようなもの):

$("a#test-link").each(function() {
    var fbPosition = getFbCanvasInfo().scrollTop;
    $(this).append("<em>The scroll top value is " + fbPosition + "px");
}

私はそれが正しくないことを知っています、そして私はここで何かが欠けています。

ところで、これらの関数はすべて私の非同期initとFBルートの下にあります。これは次のように表示されます。

<div id="fb-root"></div>
<script type="text/javascript">//<!--
    window.fbAsyncInit = function()
        {
        FB.init({
            appId: '223615011031939',
            status: true, 
            cookie: true, 
            xfbml: true, 
            oauth:true, 
            channelUrl: '[MY PROJECTS CHANNEL URL]' 
        });
        var isLoaded = true;FB.Canvas.setSize();FB.Canvas.setAutoGrow(500);            
        };

        (function() {
            var e = document.createElement('script');
            e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
        }());

        ;(function($){
            $(document).ready(function($){
                [THE JQUERY FROM ABOVE HERE]
            });
        })(jQuery);
    //--></script>

アドバイス/専門知識をお持ちの方に感謝します!ありがとう!

4

1 に答える 1

1

getPageInfo読み取り専用オブジェクトを返します。物事を「設定」するには、ドキュメントにリストされている提供されているセッター関数を使用する必要があります。キャンバスのサイズを設定するためのそれらの1つは、https:setSize //developers.facebook.com/docs/reference/javascript/FB.Canvas.setSize/を参照してください。

また、JavaScriptをクリーンアップして、APIを操作する非同期性が良好になるようにする必要があります。

$("a.GetScrollTest").live( "click", function() {
    FB.Canvas.getPageInfo(function(fbCanvasInfoObject) {
        var fbPosition = fbCanvasInfoObject.scrollTop;
        $(this).append("<em>The scroll top value is " + fbPosition + "px");
    });
    return false;
});
于 2011-12-28T06:37:52.970 に答える