您好,我在网上使用Facebook按钮。我的所有内容都是通过ajax加载的,我已经知道如果你想使用带有ajax加载内容的facebook类按钮,你应该使用FB.XFBML.parse()
。我已经使用过它并且运行良好是firefox和chrome但它在IE中不起作用。我正在检查IE 8。我搜索了解决方案,发现here在我的html标记中添加了xmlns:fb="http://www.facebook.com/2008/fbml"
。我做了但是还没修好。我的代码看起来像
layout.php
<div id="fb-root" style="display:none"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'APPID', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
};
(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_GB/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
这就是我使用XFBML.parse
$(".fblike").each(function(){
FB.XFBML.parse($(this).get(0));
//because having multiple likes button on same page.
});
这是我喜欢的按钮
<div class='fblike'><fb:like send='false' layout='button_count' width='100' show-faces='false' href='www.myurl.com?ref=facebook' ></fb:like></div>
如何使其与IE8和IE9一起使用?我错在哪里以及如何解决这个问题?
此致
答案 0 :(得分:6)
根据我的经验,如果您尝试在此调用之前运行FB.XFBML.parse()
包含在隐藏的内容中,它将无法在IE和Firefox上运行。
这不起作用:
<div id="wrapper" style="display:none">
<fb:like id="like_button" ... ...></fb:like>
</div>
<script>
FB.XFBML.parse(document.getElementById('like_button'), function() {
$('#wrapper').show();
});
</script>
可以使用类似的内容:
<div id="wrapper" style="display:block; height:0px; overflow:hidden;">
<fb:like id="like_button" ... ...></fb:like>
</div>
<script>
FB.XFBML.parse(document.getElementById('like_button'), function() {
$('#wrapper').animate({height:'30px'}, 300)
});
</script>
希望这有助于其他人。
答案 1 :(得分:1)
这适用于所有浏览器(在IE6 +,Chrome,FF,Opera,Safari上测试)。
我没有显示隐藏的FB按钮,而是动态地将FB按钮HTML代码附加到我希望它显示的DIV包装器中:
<div id="fbWrapper"></div>
<script>
$("#fbWrapper").append("<div class='fblike'><fb:like send='false' layout='button_count' width='100' show-faces='false' href='www.myurl.com?ref=facebook' ></fb:like></div>");
FB.XFBML.parse($("#fbWrapper").get(0));
</script>
或者,如果要在先前隐藏的面板中显示FB按钮,首先使面板可见,然后附加FB按钮HTML代码:
<div id="myPanel" style="display: none">
Follow us on Facebook:
<div id="fbWrapper"></div>
</div>
<script>
$("myPanel").show();
$("#fbWrapper").append("<div class='fblike'><fb:like send='false' layout='button_count' width='100' show-faces='false' href='www.myurl.com?ref=facebook' ></fb:like></div>");
FB.XFBML.parse($("#fbWrapper").get(0));
</script>