9

我的页面上有一个使用 XBFML 标签的 Facebook 赞按钮。我认为代码可以正常工作,因为它可以在 Firefox 中正常工作。

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

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

有人遇到这样的事情吗?

4

4 回答 4

18

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

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

这是 Firefox 对 IE 过于宽容的另一种情况。

于 2010-06-02T13:11:54.523 回答
3

该属性:xmlns:fb="http://www.facebook.com/2008/fbml"在 Facebook Connect 文档中被提及为“必须使用”。这里有一些指针

于 2010-07-06T18:02:34.280 回答
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 中。

于 2011-07-07T22:22:02.193 回答
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() 函数中!

于 2012-01-09T15:31:35.373 回答