XFBML Like按钮无法在IE9中呈现

时间:2013-07-25 17:29:35

标签: internet-explorer-9 facebook-like fbml

我一直试图解决这个问题一段时间没有成功。

我在https://mantry.com/giveaway/设置了一个比赛页面,我在其上有两个Facebook Like按钮(这些按钮代替了Facebook Like Box,因为我遇到了记录良好的边缘问题。订阅事件没有解雇)。

基本上,一切都在Mozilla,Chrome& Safari,但在IE9 / IE8中,fb:like按钮无法渲染。

我已经按如下方式声明了我的xml名称空间:

<script>
window.fbAsyncInit = function() {
FB.init({
  appId      : '274762932654075', // App ID
  channelUrl : '//mantry.com/channel.php', // Channel File
  status     : true, // check login status
  xfbml      : true  // parse XFBML
});

FB.XFBML.parse(document.getElementById('fb1'));
FB.XFBML.parse(document.getElementById('fb2'));

// Additional initialization code here
FB.Event.subscribe('edge.create', function(href) {
    if(href == 'http://www.facebook.com/themantry'){
        social[0] = 1;
    };
    if(href == 'http://www.facebook.com/<?php echo get_post_meta( $post->ID, 'contest_fb', true);?>'){
        social[1] = 1;
    };
    socialClick();
});

};

// Load the SDK Asynchronously
(function(d){
 var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
 if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 ref.parentNode.insertBefore(js, ref);
 }(document));
</script>

我在使用和不使用FB.XFBML.parse()的情况下都尝试过,但对我来说都没有。

fb:like元素,如果相关如下:

<fb:like href="http://www.facebook.com/themantry" send="false" width="450" show_faces="false" font="" data-layout="button_count" id="fb1"></fb:like>

任何想法都会受到高度赞赏,并乐于详细说明我可能遗漏的任何内容。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我知道这里出了什么问题,以为我会发布以防其他人遇到与我相同的问题。

我在隐藏的div中有类似按钮,只有在用户连接到Facebook后才会显示。看起来在隐藏元素上解析FBML存在问题,所以我最终移动了FB.XFBML.parse();在元素变得可见之后开火。

$('.fb-connect').hide();
$('.fb-boxes').fadeIn(200,function(){
        FB.XFBML.parse();
    });

现在它在IE9中正常工作。