我的页面上有一个类似Facebook的按钮,使用XBFML标签。我认为代码工作正常,因为它可以在Firefox中运行而没有问题。
但是在IE 8中(在IE 7兼容模式下运行),该按钮根本不显示。
如果我将它全部切换到类似按钮的iFrame版本,那么一切正常。但是当我使用XBFML标签时,它不起作用。
有人碰到这样的事吗?
答案 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()函数中!