2010-09-21 91 views
7

我最近使用XFBML实现了Facebook登录按钮和Facebook“赞”按钮。您可以在http://colnect.comFacebook登录/在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 2011-01-16 05:09:43

+0

谢谢。我动态添加类似按钮,并且只有在我添加FB.XFBML.parse('父div对象')之后 - 它才开始在IE9中显示......! – 2012-10-17 16:12:09

0

对我而言,这一招总是把class='fb-like'添加到<fb:like>标签。