カスタマイズされた Facebook ログイン ボタンを追加したページがあり、そのクリック イベント内で FB.Login() を呼び出しています。
IE9 と IE8 を除くすべてのブラウザで正常に動作します。問題は、初めてサイトを開いてログイン ボタンをクリックしたときに、ポップアップ ウィンドウが表示されないことです。ページを更新してボタンをクリックすると、ポップアップ ウィンドウが表示されます。
以下は私のコードです:
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: 'APPID',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
$("#fb").click(function () {
FB.login(function(response) {//calling facebook login
}, {scope: 'user_photos,email,user_birthday,user_likes,user_activities,read_stream,user_religion_politics,user_relationships,user_education_history,user_work_history,user_hometown,user_location'});
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {
//alert("k");
return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<input type="button" class="fb" id="fb" />
私が正しいかどうかはわかりませんが、最初はfacebookオブジェクトが作成されていないため、ログインウィンドウが表示されないと思います。