我正在使用Facebook Graph API(javascript one)。
我正在尝试使用函数FB.Canvas.getPageInfo()[“clientWidth”]获取画布大小;
但它总是血腥归零,为什么?
也许它在我调用函数时?也许它的意思是零,但我不这么认为,因为如果是这样我就无法在画布中看到我的HTML因为宽度为零了吗?
我的代码:
<html>
<head>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function()
{
FB.init( {appId: 'MYAPPID', status: true, cookie: true, xfbml: true} );
};
(function()
{
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
</body>
<script type="text/javascript">
<!--
alert( FB.Canvas.getPageInfo()["clientWidth"] ); // PS other SDK calls do work likelogin so I know my app id etc are correct
-->
</script>
</html>
答案 0 :(得分:0)
分配给的功能 window.fbAsyncInit尽快运行 Facebook JS SDK已加载。任何 SDK之后要运行的代码 加载应该放在这个内 功能和呼叫后 FB.init()。
现在试试这个。
<html>
<head>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function()
{
FB.init( {appId: 'MYAPPID', status: true, cookie: true, xfbml: true} );
alert( FB.Canvas.getPageInfo()["clientWidth"] );
};
(function()
{
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
</body>