我有一个没有SDK的Facebook按钮:
<fb:like href="<%= @canonical_url %>" send="" layout="button_count"></fb:like>
<div id="fb-root"> </div>
<script>
// facebook recommend button
window.fbAsyncInit = function() {
FB.init({appId: 'myappid', status: true, cookie: true, xfbml: true});
};
(function() {
// delay to simulate slow loading of Facebook library - remove this setTimeout!!
var t = setTimeout(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/<%= locale_og_tag %>/all.js';
document.getElementById('fb-root').appendChild(e);
}, 0);
}());
</script>
</div>
我在换页时不重新加载Facebook按钮,然后在我的javascript文件中运行:
if (typeof (FB) != 'undefined') {
FB.init({ status: true, cookie: true, xfbml: true });
} else {
$.getScript("http://connect.facebook.net/en_US/all.js#xfbml=1", function () {
FB.init({ status: true, cookie: true, xfbml: true });
});
}
但是我进入控制台:
FB.init has already been called - this could indicate a problem
我该如何解决此问题?
谢谢!
好吧are
您有三个init调用-两个通过FB.init
的显式调用和一个通过../all.js#xfbml=1
的隐式调用。除去#xfbml=1
部分以及FB.init
中的任何一个,都应该不错。
您已经用window.fbAsyncInit调用FB.init,并且已经在第一个代码块中加载了FB脚本。
只需将登录表单与其他页面分开。因此,您不必多次加载FB.init()。
也许这会对像我一样拥有标题问题并且没有找到解决方案的其他人有所帮助。