2010-09-21 14 views
7

Niedawno zaimplementowałem przycisk logowania do Facebooka i przycisk "Lubię to" Facebooka używając XFBML. Możesz zobaczyć stronę pod adresem http://colnect.comFacebook Logowanie/Like Fail na IE8

Wszystko działa dobrze z FireFox, Chrome, Opera & Safari.

Jednak program IE nie wyświetla przycisków "login" ani "like" i nie ma również komunikatu o błędzie.

Wszelkie pomysły?

Odpowiedz

7

Wygląda na to, że będę osobą, która sama sobie odpowie, mając nadzieję, że komuś pomoże.

Internet Explorer rozpoznać Facebooka należy dodać

xmlns:fb="http://www.facebook.com/2008/fbml" 

do tagu html, dla mnie to

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en"> 

Drugim problemem było to, że IE nie obsługuje Array.indexOf() tak oto sposób wokół niego:

if(!Array.indexOf){ 
    Array.prototype.indexOf = function(obj){ 
      for(var i=0; i<this.length; i++){ 
       if(this[i]==obj){ 
        return i; 
       } 
      } 
     return -1; 
    } 
} 

Nadzieję, że to pomaga.

2

Rozwiązałem mój problem z tym kodem. Reszta rozwiązania nie zadziałała w moim przypadku.

<script> 

    window.fbAsyncInit = function() { 
     FB.init({ 
      appId : '330984983742', 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
      xfbml : true // parse XFBML 
     }); 
    }; 

    (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/<?php echo ($_SESSION["lang"]=="es")?"es_ES":"en_US"; ?>/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
     FB.XFBML.parse('fb-stuff'); 
    }()); 

</script> 

Mam nadzieję, że pomoże komuś innemu.

+0

Spróbuj wyjaśnić, w jaki sposób kod jest różny jako jedyna zauważalna różnica między kodem a kopalnia jest FB.XFBML. parsować ("fb-stuff"); – Collector

+0

Dzięki. Dodaję przycisk podobny dynamicznie i dopiero po dodaniu FB.XFBML.parse ("obiekt nadrzędny div") zaczął on wyświetlać się w IE9 ...! –

0

Dla mnie, co ta sztuczka konsekwentnie dodawała class='fb-like' do tagu <fb:like>.