我需要帮助弄清楚如何从Facebook的javascript sdk中正确使用FB.Canvas.getPageInfo
:
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");
}
我知道它不对,我在这里遗漏了一些东西。
BTW这些函数都在我的async init和FB root之下,如下所示:
<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>
非常感谢任何有建议/专业知识的人!谢谢!
答案 0 :(得分:1)
getPageInfo
返回一个只读对象。要“设置”东西,您需要使用文档中列出的提供的setter函数。其中一个设置画布大小的是setSize
,请参阅https://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;
});