加载all.js后没有window.FB对象

时间:2013-12-20 12:28:42

标签: jquery facebook

我正在尝试通过Chrome扩展程序(内容脚本)与facebook API进行通信。 我尝试通过基本的javascript或jQuery加载API,如facebook docs所示。 当前代码如下:

$(document).ready(function() {
    var fbdiv = jQuery("<div>", {"id": "fb-root"});
    jQuery(document.body).children().first().before(fbdiv);
    $.ajax({
        url: '//connect.facebook.net/en_US/all.js',
        cache: true,
        dataType: "script",
        success: function(a, b, c) {
            console.log("got script");
            console.log(window.FB);
            window.fbAsyncInit = function() {
                console.log("fbAsync called");
                console.log(window.FB);
            };
        }
    });
});

结果是console.log(window.FB)调用返回'undefined',并且永远不会调用fbAsyncInit函数。

正确接收all.js资源,响应代码为200或304.我不知道是否正确评估了脚本,因为getScript doc说“脚本加载后会触发回调但不会必须执行。“然而,执行脚本应该调用window.fbAsyncInit(),它永远不会发生。

谢谢,

查理

0 个答案:

没有答案