3

我正在使用 facebook JS SDK 使用 Jquery mobile 登录 facebook。在初始页面加载时,一切正常 - 我看到了按钮,我可以获取登录状态等。当我(通过 ajax)链接到另一个页面时,按钮没有加载并且没有任何作用。似乎 sdk 没有加载并且 window.fbAsyncInit 没有触发。

我假设这与使用 jquery 移动页面加载所有内容的方式有关,但我已经尝试了一切。将 fb-root 放置在不同的地方,将 init 脚本放在标题、正文和页面内,但我得到了相同的结果。

有什么想法吗?

4

1 回答 1

1

我正在使用的移动应用程序遇到了类似的问题。我还没有确定确切的问题,但它与一些无法通过 ajax 发生的加载事件有关。解决问题的最简单方法是强制我的登录页面不通过 ajax 加载。使用data-ajax属性。

 <a href="/login.htm" data-ajax="false">Login</a>

理想情况下,登录页面加载事件将能够确定使用的方法。可能是这样的:

 $(document).on('pageinit','#login_page', function(){
      // if (page-load-event happened through ajax)
      location.reload(true);
 });

本质上它只是刷新页面。使用 true 作为函数参数将确保它不使用任何缓存,并再次从服务器中提取。

于 2012-07-13T04:25:49.123 回答