2012-04-04 10 views
1

Ich weiß, dass Facebook hat vor kurzem den Code geändert, so dass der Login-Berechtigungsnachweis wirdFB.login mit Display als iframe

auf facebook.com im Popup-Fenster von facebook.com oder umleiten gegeben werden, aber ich muss machen die FB.login im iframe auf der gleichen Seite, weil was ich tue, bildet submiossion durch Benutzer auf meiner Anwendung. Wenn der Benutzer einige Daten eingegeben hat und er nicht eingeloggt ist, wird der Benutzer auf der Seite aufgefordert, sich über ein Popup-Fenster bei Facebook anzumelden. Aber für Safari ist das Popup blockiert. Das macht also unbequem.

Antwort

0

Dies liegt daran, dass getLoginStatus die Benutzeraktion überschreibt, die das Fenster-Popup beendet.

1

Der Aufruf von FB.login() sollte in einem Onclick-Handler sein, dann Popup-Blocker werden es nicht töten.

FB-Anmeldung in einem Iframe ist nicht möglich, da mehrere Browser strengere Einschränkungen für das Setzen von Cookies in Iframes als in Popups festlegen. Es wäre auch anfälliger für Clickjacking und Passwortdiebstahl.

+0

Ich benutze $ ("# someid"). Click (function() {// FB.login code here} also sollte das funktionieren. Aber es funktioniert nicht, wenn das Popup-Fenster blockiert ist. Das Popup-Fenster wird auch bei onclick angeklickt – Madan

+0

Das ist komisch.Kannst du den genauen Code? –

+0

Hallo Nathan, ich stimme dir zu ... FB.login on onclick löst das Problem. Nach dem Debuggen was ich gefunden habe, ruft FB.login innerhalb von FB.getLoginStatus() auf Ich habe dieses Problem jetzt gelöst .. danke für deine Hilfe. – Madan