And*_* SK 2 javascript jquery facebook-comments
这将显示来自该http://domain.com/some/abc的评论
<fb:comments href="http://domain.com/some/abc" num_posts="20" width="500"></fb:comments>
<div id="fb-root"></div>
<script type="text/javascript">
(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=1234567890";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
Run Code Online (Sandbox Code Playgroud)
如果用户将表单中的值从 abc 更改为 xyz,我需要评论插件来显示来自http://domain.com/some/xyz的评论,而无需重新加载页面。
<form id="name">
<select>
<option value="abc" selected>abc</option>
<option value="xyz">xyz</option>
</select>
</form>
Run Code Online (Sandbox Code Playgroud)
可行吗?(在 fb 开发页面上没有找到任何信息。)我正在使用 jQuery。谢谢!
是的,这是可行的;我相信我成功地在这里复制了您想要的结果;
jsfiddle 死机情况的片段:
(function loadfb(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=1234567890";
fjs.parentNode.insertBefore(js, fjs);
})(document, 'script', 'facebook-jssdk');
function changeDomain(value) {
var newVal = '<fb:comments href="http://example.com/some/' + value + '" num_posts="20" width="500"></fb:comments><div id="fb-root"></div>';
$('#comments').html(newVal);
FB.XFBML.parse($('#comments').get(0),function(){
$(".FB_Loader").remove();
});
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="name">
<select onChange="changeDomain(this.value);">
<option value="abc" selected>abc</option>
<option value="xyz">xyz</option>
</select>
</form>
<div id="comments">
<fb:comments href="http://example.com/some/abc" num_posts="20" width="500"></fb:comments>
<div id="fb-root"></div>
</div>Run Code Online (Sandbox Code Playgroud)
我通过首先替换评论 div 的innerHTML(我创建它来容纳 fb:comments 标签),然后调用FB.XFBML.parse();相同的评论 div 来做到这一点。感谢这篇文章提醒我这种方法。