Wie bekomme ich die neue Facebook Javascript SDK arbeiten in IE8?

Habe ich eingekocht meiner Seite, um die einfachste Sache, und es immer noch nicht funktioniert im IE8.

Hier ist die gesamte html-Seite:

<!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" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
<head></head>
<body>
<div id="fb-root"></div>
<fb:login-button></fb:login-button>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({appId: 'd663755ef4dd07c246e047ea97b44d6a', status: true, cookie: true, xfbml: true});
  FB.Event.subscribe('auth.sessionChange', function(response) {
    alert(JSON.stringify(response));
  });
  FB.getLoginStatus(function (response) { alert(JSON.stringify(response)); });
</script>
</body>
</html>

In firefox, safari und chrome (auf einem mac), bekomme ich das Verhalten, das ich erwarten, dass: - wenn ich nicht eingeloggt Facebook, bekomme ich einen dialog, auf Seite Last mit einer leeren Sitzung. Wenn ich auf die Schaltfläche "Login" und melden Sie sich, ich wird ein zweites Dialogfeld mit einer Sitzung. Wenn ich eingeloggt bin in Facebook, ich bekomme zwei Dialoge mit sessions: eine aus der getLoginStatus nennen, und ein anderes von der Veranstaltung.

Im IE8 bekomme ich keine Dialoge, wenn ich das laden der Seite. Die getLoginStatus callback wird nicht aufgerufen. Wenn ich den Anmelde-button klicke, bekomme ich einen dialog, aber es hat einen sehr seltsamen Fehler:

Ungültiges Argument

Den Facebook Connect cross-domain
receiver URL
(http://static.ak.fbcdn.net/connect/xd_proxy.php#?=&cb=f3e91da434653f2&origin=http%3A%2F%2Fmysiteurl.com%2Ff210cba91f2a6d4&relation=opener&transport=flash&frame=f27aa957225164&result=xxRESULTTOKENxx)
muss die Anwendung Schließen
URL (http://mysiteurl.com/) als
Präfix. Sie können konfigurieren Sie die Verbindung
URL in die Einstellungen der Anwendung
Editor.

Habe ich bereinigt die Connect-URL oben, aber es ist richtig.

Des dialogs haben die Benutzername/Kennwort-Felder. Wenn ich mich einlogge, wird das Dialogfeld wird umgeleitet auf meine Connect-URL, aber es gibt keine fb-cookie, so dass natürlich nichts funktioniert.

Was mache ich hier falsch?

Update (2010-Sep-10):

Dieses problem ist nicht universal. Meine Website-url muss die port-Nummer in es,
da es meine test-site: http://mysiteurl.com:12345. Ohne port
Anzahl, ie8 scheint ok zu sein. Mit der port-Nummer, geht es weiter
scheitern als vorher. Aber die Fehlermeldung ist jetzt verständlicher:

Ungültiges Argument

Angegebenen URL ist nicht erlaubt durch die Anwendung Konfiguration

Auch, dieses problem ist spezifisch für IE (eigentlich vermute ich, dass es speziell auf die flash-XD-transport, aber ich weiß nicht, wie um zu bestätigen, dass). Es funktioniert gut auf jeder anderen Plattform/browser-paar, die ich ausprobiert habe.

Ich bin immer noch nicht näher zu dieser Arbeit eine url mit einer Portnummer.

  • Wenn Sie schnuppern den Verkehr, die gehen, sehen Sie irgendwelche Unterschiede? Und zu welchem Zeitpunkt Sie erscheinen?
  • Gute Frage. Die Unterschiede sind ziemlich groß. Facebook auf IE offenbar nutzt flash, um einen Kommunikations-Kanal, das ist nicht wahr, für den anderen Browsern habe ich genau betrachtet. Etwas in der flash-Mechanismus ist offenbar nicht richtig funktioniert.
  • Wenn Sie mit Ihren Verdächtigungen zeigen Sie auf die Tatsache, dass Sie versuchen, verwenden Sie einen anderen port als 80, warum nicht versuchen, es auf port 80? Verwenden Sie eine sub-Domain wie test.yoursite.com gebunden an port 80
InformationsquelleAutor archbishop | 2010-06-09
Schreibe einen Kommentar