Update 4/8/09 - Eine neue Woche ist angebrochen, ohne dass ich Fortschritte gemacht habe und ohne dass die Facebook-Foren geantwortet haben. Keine einzige Antwort dort, was ziemlich enttäuschend ist. Ich kann auch nicht herausfinden, wie ich ein Kopfgeld auf diese Frage aussetzen kann, aber ich würde dieses Problem wirklich sehr gerne lösen.
Ich habe mir viele Beiträge angesehen, um zu sehen, ob dies schon einmal gepostet wurde, und es war nicht der Fall. Hier ist die Kurzversion:
Ich gehe das FB-Connect-Beispiel-Tutorial (v1) durch und kann es im IE8 unter Win7 nicht zum Laufen bringen. Es funktioniert wie erwartet in FF3 unter Win7.
Lange Version:
Ich war überrascht, dass die Dinge nicht funktionierten, da ich den Inhalt so gut wie kopiert und eingefügt hatte. Ich habe den Teil mit dem alert()-Javascript-Aufruf übersprungen, also habe ich das eingefügt, um zu sehen, ob der Parser überhaupt dazu kommt. Ich habe den folgenden Code eingefügt:
[my raw html]
Or use, <fb:login-button length="long" onlogin="alert('yo!!!');"></fb:login-button>
[/my raw html]
Die Warnmeldung wird im IE8 nicht angezeigt. Im FF funktioniert sie.
Wenn ich zum Aufruf von update_user_box() zurückkehre, sieht mein HTML so aus:
Or use, <fb:login-button length="long" onlogin="update_user_box();"></fb:login-button>
<script type="text/javascript">
function update_user_box() {
var user_box = document.getElementById("user");
user_box.innerHTML =
"<span>"
+ "<fb:profile-pic uid='loggedinuser' facebook-logo='true'></fb:profile_pic>"
+ "Welcome, <fb:name uid='loggedinuser' useyou='false'></fb:name>."
+ "You are signed in."
+ "</span>"
FB.XFBML.Host.parseDomTree();
}
FB.init("23e24c73feed7ca0f6afd876575842de", "../../Connect/xd_receiver.htm", { "ifUserConnected": update_user_box });
</script>
Auch dies funktioniert in FF3 einwandfrei. Mein Bild wird angezeigt und alles. Es ärgert mich eigentlich mehr, dass es in FF3 funktioniert hat, als dass es komplett nicht funktioniert.
Hier ist das beobachtete Verhalten im IE8:
-
Wenn ich auf die FBConnect-Schaltfläche klicke, öffnet sich das Javascript-Fenster und lädt die richtige Anmeldeseite
-
Der Fokus wechselt zurück zum Hauptfenster (das Fenster mit meiner Anwendung)
-
Das Hauptfenster des IE8 (das Fenster, in dem ich auf die Schaltfläche "Verbinden" geklickt habe) zeigt jetzt eine Facebook-Anmeldeseite.
-
Wenn ich meine Anmeldedaten in das FB-Javascript-Fenster eingebe, lädt die Seite ein leeres Dokument URL dieser Seite: http://localhost:55994/Connect/xd_receiver.htm?fb_login&fname=_opener&session=%7B%22session_key%22%3A%223.A4DpHk4nrKHooB7K_Q6EiA__.86400.1238796000-623225%22%2C%22uid%22%3A%22623225%22%2C%22expires%22%3A1238796000%2C%22secret%22%3A%22HtjtJS_xg8dX7TR7lLggew__%22%2C%22sig%22%3A%22ae12c0f98d4567612b70861314d42fbb%22%7D
Quelle dieser Seite anzeigen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script>
</body>
</html>
5, Wenn ich dieses Fenster schließe und meine Anmeldedaten in das Anwendungsfenster eingebe, wird die Seite mit der Schaltfläche FBConnect neu geladen.
Wie ich schon sagte, erhalte ich das erwartete Verhalten in FF3, aber nicht in IE8. Ich habe sogar den Kompatibilitätsmodus des IE8 ausprobiert, aber auch das hat nicht funktioniert. Hat jemand einen Hinweis darauf, was hier passiert?
Mein HTML-Tag sieht so aus:
Ich weiß also, dass das nicht das Problem ist.
0 Stimmen
Welche Version von Win7? Wenn es Build 7000 ist, dann hatte es eine ziemlich alte Version von IE8 mit ihm, so dass es gut sein kann in IE8 final.
0 Stimmen
Ich verwende Build 7068. Ich habe weder IE7 noch 8 unter Vista ausprobiert. Ich nehme an, ich sollte das auch versuchen, aber ich bin lokal auf meinem Entwicklungsrechner ausgeführt.
0 Stimmen
Zu den Kopfgeldern: stackoverflow.com/faq#bounty