2010-09-21 107 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>標籤。