fbAsyncInit 回调函数中的 FB 对象仍未定义。一旦 FB 已加载并准备好使用 初始化,这样做的目的不就是回调FB.init({})
吗?
如果我在 中添加另一个异步函数setTimeout
,则会加载 FB 对象。
看到这个jsFiddle。
显然我错过了一些东西。有人可以澄清一下吗?
fbAsyncInit 回调函数中的 FB 对象仍未定义。一旦 FB 已加载并准备好使用 初始化,这样做的目的不就是回调FB.init({})
吗?
如果我在 中添加另一个异步函数setTimeout
,则会加载 FB 对象。
看到这个jsFiddle。
显然我错过了一些东西。有人可以澄清一下吗?
这很尴尬。你能找出丢失的分号吗?感谢JSLint;
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function () {
debugger;
if (typeof FB !== "undefined") alert('FB loaded now');
else alert('FB not loaded');
//This works
setTimeout(function () {
if (typeof FB !== "undefined") alert('FB loaded now');
else alert('FB still not loaded');
},100);
}
(function () {
debugger;
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);
} ());
</script>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function ()
{
debugger;
if (typeof FB !== "undefined") alert('FB loaded now');
else alert('FB not loaded');
//This works
setTimeout(function ()
{
if (typeof FB !== "undefined")
alert('FB loaded now');
else
alert('FB still not loaded');
},100);
}; // --> SEMI-COLON HERE
(function () {
debugger;
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);
} ());
</script>