我想在ajax加载页面中显示Facebook“Like box”插件和其他一些FB代码。
当我在普通的html页面中加载它时,它可以正常工作,但是当我尝试将它放在ajax加载页时它只加载第一次,当我点击链接时加载页面第二次没有加载页面?如果我清除缓存,它只会加载页面。
索引文件初始化fb代码。
FB.init({
appId : '277065222', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
我使用以下代码加载ajax页面:
function loadFacebook(){
$('#container').load('http://www.manmade.se/manmade/guiden/facebook_onweb.html');
FB.XFBML.parse();
}
在ajax加载的页面中,我有Facebook代码,例如facebook Like框。
答案 0 :(得分:14)
您可以在调用fb脚本
后调用页面加载中的fb par脚本(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_US/all.js#xfbml=1&appId=11111code";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
$(document).ajaxComplete(function () {
try {
FB.XFBML.parse();
} catch (ex) { }
});
答案 1 :(得分:4)
reloadlike.html
<div class="fb-like fltLeft" data-href="http://yrl_like" data-send="false" data-layout="button_count" data-width="87" data-show-faces="false"></div>
这应该每次都有效。
我猜你的回调不对。
$('#container').load('reloadlike.html', function() {
FB.XFBML.parse();
});
答案 2 :(得分:0)
稍微改变一下bugrasitemkar的示例代码,在ajax代码的末尾,我包含了这个jquery脚本,它可以工作:
<script type="text/javascript">
$(document).ready(function() {
try {
FB.XFBML.parse();
} catch (ex) { }
});
</script>