如何根据javascript变量动态更改Facebook评论插件URL

How to dynamically change facebook comments plugin url based on javascript variable?

本文关键字:Facebook 评论 插件 URL 动态 何根 javascript 变量      更新时间:2023-09-26

我想根据javascript变量动态更改下面fb注释插件的数据href。 我正在运行一个 flash swf 文件,并通过 javascript 函数将 data-href 的新链接传递到 html 包装器中。 当我这样做时,我希望 fb 注释插件刷新到新的 data-href 链接。

<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div>

调用 javascript 函数传入注释插件的新链接:

function changeCommentsUrl(newUrl){
// should refresh fb comments plugin for the "newUrl" variable
}
这将

加载初始注释框,脚本在执行时将清除注释div包装器并将html5注释框替换为新的url。 然后,JS SDK 将解析新框。

这项工作需要 JS SDK,请参阅 https://developers.facebook.com/docs/reference/javascript/

修复了 DOM 操作中的 XFBML 渲染


<div id="comments">
<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div>
</div>
<script>
function changeCommentsUrl(newUrl){
// should refresh fb comments plugin for the "newUrl" variable
document.getElementById('comments').innerHTML='';
parser=document.getElementById('comments');
parser.innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+newUrl+'" data-num-posts="20" data-width="380"></div>';
FB.XFBML.parse(parser);
}
</script>

用户已解决:

document.getElementById('comments').innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+link+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(document.getElementById('comments'));

我找到了最简单有效的方法来使您的Facebook评论框识别每个页面的单个URL(特别适合电子商务网站)。

将此脚本添加到网站模板的顶部标题部分(它为您的评论框div 生成 de data-href 值:

<script type="text/javascript" language="javascript">
  jQuery("#FC").attr("data-href", window.location.href.split("?")[0]); 
</script>

然后在您的评论框div 上,添加在 javascript 上生成的值的 id:

<div id="FC" class="fb-comments" data-href="" data-width="700" data-numposts="5" data-colorscheme="light">

瞧。我花了这么多时间来破解这个坚果,我只需要分享给你,以节省一些休息时间!干杯!