0

问题是页面在 Facebook API 准备好之前加载。如果用户单击 Facebook 连接按钮,则未定义变量 FB。

目前,我在 document.ready 上加载 Facebook API。

我找到了触发自定义事件的解决方法。

在 mobileinit 事件中加载 Facebook API 是一个好的解决方案吗?它会在所有其他脚本之前加载并且只加载一次?

代码 :

$(document).on("mobileinit", function(){
  $.ajaxSetup({ cache: true });
    $.getScript('//connect.facebook.net/en_US/all.js', function(){
        window.fbAsyncInit = function() {
            FB.init({
                appId: 'appid',
                channelUrl: 'channel.html',
                //status: true,
                cookie: true,
                xfbml: true
            });
            $(document).trigger("facebook:ready");
        }
    });
});

感谢您的回答

4

1 回答 1

0

您正在使用 jQuery-Mobile (JQM) 构建的应用程序是一个单页应用程序

"$(document).ready" 只会在第一个 JQM 页面加载之前触发一次。您可以在“$(document).ready”中加载 FB 库。

这篇文章中,更多的是抱怨“$(document).ready”只被解雇一次,在你的情况下,你可以利用它。

于 2013-07-29T16:16:18.060 回答