在我的网站中,我有 2 个 facebook 连接按钮,它们具有以下代码;
<div id="fb-root"></div>
{literal}
<script>
window.fbAsyncInit = function() {
FB.init({
appId: {/literal}{$fb_app_id}{literal},
cookie: true,
xfbml: true,
oauth: true
});
FB.Event.subscribe('auth.login', function(resp) {
window.location.reload();
});
};
(function() {
var e = document.createElement('script'); e.async = false;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
{/literal}
<a class="facebook-connect" href="#" onclick="fb_login();return false;">facebook connect</a>
{literal}
<script>
function fb_login(){
FB.login( function( response) {
if( response.authResponse){
// dont do anything, it will reload the page
window.location.reload();
}
else // user cancelled facebook connect
{
return false;
}
}, {scope : 'email, user_about_me, user_birthday, user_location, friends_about_me, publish_actions, offline_access '});
}
在那之后,我有一个相同的 facebook 连接按钮,但是 didderent 类;
<a class="facebook" href="" >facebook connect</a>
但是,在第二节课中,我不想让FB.init
加载 js-sdk 异步。所以,我使用了这段代码;
$('.facebook').click( function(){
$('.facebook-connect').click();
});
但是,单击.facebook
按钮后,会出现对话框,facebook 会询问登录凭据(电子邮件/密码)。之后,对话框变为空白。有任何想法吗 ?