2

Привет, я использую Facebook как кнопку на моем веб-сайте. Весь мой контент загружается через ajax, и я узнал, что если вы хотите использовать facebook как кнопку с загруженным содержанием ajax, вы должны использовать FB.XFBML.parse(). Я использовал это, и он хорошо работает, это firefox и chrome, но он не работает в IE. Я проверяю IE 8. Я искал решение и нашел here, чтобы добавить xmlns:fb="http://www.facebook.com/2008/fbml" в свой тег html. Я сделал, но он еще не исправлен. Мой код выглядитFB.XFBML.parse не работает в IE

layout.php 

<div id="fb-root" style="display:none"></div> 
    <script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'APPID', // App ID 
      status  : true, // check login status 
      cookie  : true, // enable cookies to allow the server to access the session 
      xfbml  : true // parse XFBML 
     }); 

     // Additional initialization code here 
     }; 

     (function(d, s, id) { 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) return; 
      js = d.createElement(s); js.id = id; 
      js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

    </script> 

И это, как я использую XFBML.parse

$(".fblike").each(function(){ 
    FB.XFBML.parse($(this).get(0)); 
    //because having multiple likes button on same page. 
}); 

А вот мой как кнопка

<div class='fblike'><fb:like send='false' layout='button_count' width='100' show-faces='false' href='www.myurl.com?ref=facebook' ></fb:like></div> 

Как заставить его работать с IE8 и IE9? Где я ошибаюсь и как решить эту проблему?

С уважением,

+0

можно дублировать http://stackoverflow.com/questions/3758846/facebook-login-like-fail-on-ie8 – Venu

+0

@ Venu Я уже следовал этой инструкции, но моя проблема все еще существует? –

+0

Вы пробовали Array.prototype.indexOf? – Venu

ответ

6

По моему опыту, если вы попытаетесь запустить FB.XFBML.parse() завернутые в то, что спрятано до этого разговора, он не будет работать на IE и Firefox.

Это не будет работать:

<div id="wrapper" style="display:none"> 
    <fb:like id="like_button" ... ...></fb:like> 
</div> 

<script> 
FB.XFBML.parse(document.getElementById('like_button'), function() { 
    $('#wrapper').show(); 
}); 
</script> 

Может использовать что-то вроде этого, вместо:

<div id="wrapper" style="display:block; height:0px; overflow:hidden;"> 
    <fb:like id="like_button" ... ...></fb:like> 
</div> 

<script> 
FB.XFBML.parse(document.getElementById('like_button'), function() { 
    $('#wrapper').animate({height:'30px'}, 300) 
}); 
</script> 

Надеется, что это помогает кому-то еще.

1

Это работает для меня во всех браузерах (проверено на IE6 +, Chrome, FF, Opera, Safari).

Вместо того чтобы показывать скрытую кнопку FB I динамически добавляемой кнопку FB HTML код в DIV обертке, где я хочу его показать:

<div id="fbWrapper"></div> 

<script> 
    $("#fbWrapper").append("<div class='fblike'><fb:like send='false' layout='button_count' width='100' show-faces='false' href='www.myurl.com?ref=facebook' ></fb:like></div>"); 
    FB.XFBML.parse($("#fbWrapper").get(0)); 
</script> 

Или, если вы хотите, чтобы показать кнопку FB внутри ранее скрытая панель, сначала панель видна, затем добавить кнопку FB HTML код:

<div id="myPanel" style="display: none"> 
    Follow us on Facebook: 
    <div id="fbWrapper"></div> 
</div> 

<script> 
    $("myPanel").show(); 
    $("#fbWrapper").append("<div class='fblike'><fb:like send='false' layout='button_count' width='100' show-faces='false' href='www.myurl.com?ref=facebook' ></fb:like></div>"); 
    FB.XFBML.parse($("#fbWrapper").get(0)); 
</script> 

 Смежные вопросы

  • Нет связанных вопросов^_^