2010-09-21 4 views
7

Недавно я реализовал кнопку входа в Facebook и кнопку «Мне нравится» с помощью XFBML. Вы можете увидеть сайт на http://colnect.comFacebook Login/Like Fail on IE8

Все хорошо работает с FireFox, Chrome, Opera & Safari.

Однако IE не показывает ни кнопки «входа», ни «как», и сообщение об ошибке также не доступно.

Любые идеи?

ответ

7

Кажется, я буду таким человеком, чтобы отвечать самому себе, надеясь, что это поможет кому-то.

Для Internet Explorer распознавать Facebook, вы должны добавить

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

в свой тег HTML, для меня это

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

Вторая проблема у меня в том, что IE не поддерживает Array.indexOf(), так что вот так:

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

Надеюсь, это поможет.

2

Я решил проблему с этим кодом. Остальная часть решения не работала для моего дела.

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

Я надеюсь, что это поможет кому-то еще.

+0

Пожалуйста, попробуйте объяснить, как ваш код отличается, как только заметное различие между вашим кодом и шахта является FB.XFBML. разобрать ('Fb-материал'); – Collector

+0

Спасибо. Я добавляю подобную кнопку динамически, и только после того, как я добавил FB.XFBML.parse («родительский объект div») - он начал отображаться в IE9 ...! –

0

Для меня то, что сделал этот трюк последовательно, добавляло class='fb-like' к тегу <fb:like>.