2010-09-21 6 views
7

Recientemente he implementado el botón de inicio de sesión de Facebook y un botón "Me gusta" de Facebook utilizando XFBML. Puede ver el sitio en http://colnect.comFacebook Login/Like Fail en IE8

Todo funciona bien con FireFox, Chrome, Opera & Safari.

Sin embargo, IE no muestra los botones de "inicio de sesión" o "me gusta" y tampoco hay ningún mensaje de error disponible.

¿Alguna idea?

Respuesta

7

Parece que seré el tipo de persona que se responderá a sí mismo con la esperanza de que pueda ayudar a alguien.

Para Internet Explorer para reconocer Facebook se debe añadir

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

a su etiqueta html, para mí es

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

El segundo problema que tuve fue que el IE no soporta Array.indexOf() así que aquí está la manera de evitarlo:

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

espero que ayude.

2

He resuelto mi problema con este código. El resto de la solución no funcionó para mi caso.

<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> 

Espero que ayude a alguien más.

+0

Por favor, trata de explicar cómo el código es diferente, ya que la única diferencia notable entre el código y el mío es el FB.XFBML. parse ('fb-stuff'); – Collector

+0

Gracias. Agregué el botón Me gusta dinámicamente, y solo después de que agregué FB.XFBML.parse ('parent div object') - ¡comenzó a mostrarse en IE9 ...! –

0

Para mí, ¿qué hizo ese truco consistente en agregar class='fb-like' a la etiqueta <fb:like>?