我的HTML文档末尾附近有以下代码,就在</body>
标记之前:
<div id="fb-root"></div>
<script type="text/javascript" src="//connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
window.fbAsyncInit = function()
{
FB.init({
appId : 'My app id',
status : true,
cookie : true,
xfbml : true
});
FB.Canvas.setAutoGrow();
}
</script>
它不起作用。但是,当我摆脱FB.init函数时,自动调整大小的工作原理:
<div id="fb-root"></div>
<script type="text/javascript" src="//connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
window.fbAsyncInit = function()
{
FB.Canvas.setAutoGrow();
}
</script>
有没有办法让页面有一个window.fbAsyncInit并同时向Facebook API提供appId?
答案 0 :(得分:1)
你似乎对window.fbAsyncInit感到困惑,它是在异步加载javascript时使用的,如下所示。因此,删除此包装函数可以解决您的问题。
// Load the SDK Asynchronously
(function (d) {
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; } js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName('head')[0].appendChild(js);
} (document));