Facebook喜欢按钮显示在Firefox但没有在IE中显示

时间:2010-06-02 13:08:16

标签: facebook facebook-like

我的页面上有一个类似Facebook的按钮,使用XBFML标签。我认为代码工作正常,因为它可以在Firefox中运行而没有问题。

但是在IE 8中(在IE 7兼容模式下运行),该按钮根本不显示。

如果我将它全部切换到类似按钮的iFrame版本,那么一切正常。但是当我使用XBFML标签时,它不起作用。

有人碰到这样的事吗?

4 个答案:

答案 0 :(得分:18)

尝试将xmlns属性添加到FB命名空间的HTML文档中:

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

这是另一个案例,其中Firefox与IE相比过于宽容。

答案 1 :(得分:3)

属性: xmlns:fb =“http://www.facebook.com/2008/fbml”在Facebook Connect文档中被称为“必须使用”。 Some pointers here

答案 2 :(得分:1)

我认为我的实现方式与您略有不同,但同样的一般问题是仅在IE中看不到我的Facebook社交按钮。事实证明,这是因为我把Facebook脚本标签放在了我的页面底部。解决方案是移动

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>

所以在插入按钮之前

<fb:like href="" send="true" layout="button_count" width="350" show_faces="true" font=""></fb:like>

然后按钮也开始出现在IE中。

答案 3 :(得分:0)

if(document.namespaces) {
    //IE
    document.namespaces.add("fb", "http://ogp.me/ns#");
    document.namespaces.add("og", "http://ogp.me/ns/fb#");

    if (typeof(console) != 'undefined' && console) {
        console.log("IE: OG and FB NameSpace added");
    } else {
        //Other Browsers
        var htmlRoot = jQuery(jQuery("html").get(0));
        if(typeof(htmlRoot.attr("xmlns:fb")) == "undefined") {
            htmlRoot.attr("xmlns:og",'http://ogp.me/ns#');
            htmlRoot.attr("xmlns:fb",'http://ogp.me/ns/fb#');
            if (typeof(console) != 'undefined' && console) {
                console.log("OG and FB NameSpace added");
            }
        }
    }

请勿将其放入$(document).ready()函数中!