我在我的控制台中收到此消息
FB.getLoginStatus() called before calling FB.init().
Run Code Online (Sandbox Code Playgroud)
我的代码
<div id="fb-root"></div>
<script>
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = \"//connect.facebook.net/fr_FR/all.js#xfbml=1\";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<div class="fb-like" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false"></div>
Run Code Online (Sandbox Code Playgroud)
我不明白为什么.在我的所有网站上,我只有一个关于这个facebook的插件.
Séb*_*ier 92
添加&status=0到您的js.src网址以使警告消失,即:
//connect.facebook.net/fr_FR/all.js#xfbml=1&status=0
FB.init()如果在哈希(#)符号后提供参数,则在加载时将由facebook脚本在内部调用.这xfbml是通过,所以FB.init()被称为.
(源代码:http://connect.facebook.net/fr_CA/all/debug.js此帖子时的第8699行)
如果没有明确提供,则使用init()的默认参数:statusarg default is true- 这使得FB脚本getLoginStatus()在启动时调用,因为该函数调用需要应用程序ID而抱怨.
FB社交插件不需要应用程序ID - 它们被呈现为来自facebook.com的iframe,因此FB登录状态和cookie可供他们访问.
FB开发者社交插件部分中的"获取代码"向导生成带有xfbmlparam 的URL ,应该使用status=0参数恕我直言更新.
警告:下面有一些猜测。如果不合适我可以删除它。
我认为问题在于异步加载 SDK,但“Like”按钮是内联的。那么“Like”按钮可能会在脚本加载之前调用 getLoginStatus。您可以通过注释掉异步加载 SDK 的脚本来测试/验证这一点,并将其作为普通脚本标记包含在页面标题中。
当然,这只是最简单的测试方法。如果您可以验证问题所在,那么解决该问题的“正确”方法可能是确保在加载 SDK 之前“赞”按钮不会出现在页面上。
| 归档时间: |
|
| 查看次数: |
31391 次 |
| 最近记录: |