仅限IE8:Facebook Like Box未显示

时间:2011-10-19 17:56:51

标签: internet-explorer-8 facebook-likebox

所以我遇到了许多其他问题:Facebook Like Box并没有在IE8中进行双击(IE7 OK)。 我发现了很多关于此的帖子,尝试了所有的解决方案,但没有成功... IE8消息: FB.FBXML是否为对象

注意:有一个函数可以处理FB Like Box的大小调整。

这是我的HTML5代码:

<!doctype html>
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="fr" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/"  xmlns:fb="http://www.facebook.com/2008/fbml"><![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="fr"> <!--<![endif]-->
<head>
...
    <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
</head>
<body>
...
    <article>
    <div class="row" id="content">
            <div class="twelvecol last">
            <div id="fb-root"></div>
                <div class="fb-like-box" data-href="http://www.facebook.com/divstudio" data-width="1140" data-show-faces="true" data-stream="true" data-header="false"></div>
            </div>
    </div>
    </article>
...

<script>
$(document).ready(function(){
        var contentwidth = $('#content').width();
        $('.fb-like-box').attr('data-width', contentwidth - '40');
        FB.FBXML.parse(document.getElementsByClassName('.fb-like-box'));
});
</script> 

 <script>(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_US/all.js#xfbml=1";
                  fjs.parentNode.insertBefore(js, fjs);
                }(document, 'script', 'facebook-jssdk'));</script>      
</body>
</html>

有什么想法吗?

网站:http://www.divstudio.fr/emergenza/jazz/actu.html

很多

3 个答案:

答案 0 :(得分:4)

您应该将这些行添加到标记中。

xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/"
xmlns:fb="http://www.facebook.com/2008/fbml"

如果标签中已有任何属性,请保持原样。这样起始的html标签就像这样。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">

如果启用了缓存,请清除缓存。它应该适用于IE-8

答案 1 :(得分:3)

我遇到了同样的问题,添加适当的xmlns属性没有帮助。事实证明,导致我的问题的原因与另一个问题有关:Facebook like box not showing up when user is not logged into Facebook。 Igy和wasim kazi的答案让我得到了解决方案。以下是解决问题的方法:

  1. 登录管理您希望在类似框中反映的页面的Facebook帐户。
  2. 在左侧导航栏上,点击“页面”。
  3. 点击页面标题以显示该页面的管理面板。
  4. 点击编辑页面 - &gt;修改设置
  5. 您会看到一个标有“国家/地区限制”的框。如果此框中列出了任何国家/地区,则如果用户未登录Facebook,则您的喜欢框将为空白在Internet Explorer(7,8,9)中将为空白。这是有道理的:Facebook能够确定地执行地理限制的唯一方法是确保用户登录。为什么这会影响IE(无论用户是否登录)都是个谜,但那是在我的情况下问题的原因。

答案 2 :(得分:0)

我在drupal 6的facebook模块中遇到了同样的问题。

我通过将标记类型从 XFBML 更改为 HTML5

解决了我的问题

然后我在<head>部分添加了HTML5脚本:

<!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

我希望这也可以解决您的问题。