根据页面更改facebook评论框的网址?

时间:2012-01-15 09:36:02

标签: javascript facebook

在我的网站上我有超过100页,现在我想在每个页面添加facebook评论框。将页面Url插入Facebook后,它给了我这个代码添加到我的页面,但我不想复制并过去到每个页面,然后根据网页名称更改URL。在第二个代码中,有一个网页的实际URL,我可以用

替换它
location.href

这样我就不必更改URL了。这甚至可能吗?我怎么能这样做?

  Include the JavaScript SDK on your page once, ideally right after the opening <body> tag.





<div id="fb-root"></div>
    <script>(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=324524777119";
    fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>

2.将插件的代码放在您希望插件显示在页面上的任何位置。

<div class="fb-comments" data-href="http://damnthisfunny.site40.net/1.html" data-num-posts="25" data-width="470"></div>

我尝试了这个,但它不起作用:

<body>
<div id="fb-root"></div>
<script>(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=324524777119";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-comments" data-href="+location.href+" data-num-posts="25" data-width="470"></div>

</body>

3 个答案:

答案 0 :(得分:2)

我能够使用一点点javascript来解决这个问题。在我希望评论出现的地方,我使用了代码:

`<div id="fbcomments"></div>
`<script>
`var elemDiv = document.getElementById("fbcomments");
`var markup = '';
`markup += '<fb:comments href="' + location.href + '"></fb:comments>';
`elemDiv.innerHTML = markup;
`FB.XFBML.parse(elemDiv);
`</script>

而不是FB代码:

`<div class="fb-comments" data-href="http://mysite.com/page" data-num-posts="20" data-width="538" data-colorscheme="dark"></div>

就评论发布和知道他们属于哪个页面的代码而言,一切都很好。我遇到的唯一问题是:无论我从上面使用哪个代码,来自评论者的FB配置文件的链接都链接回评论页面,其中包含相同的/?fb_comment_id =查询字符串。如果我使用FB代码,评论将显示,但如果我使用javascript代码,评论将不会显示?!我迷路了...

答案 1 :(得分:1)

data-href="+location.href+"您的问题出在代码的这一部分。确保您使用的是有效的完全限定URL。

答案 2 :(得分:1)

谢谢你(恩利尔)!这是我对最后一个想法的修改,因为我只在客户端使用它:

<div id="fbc"></div>
<script>
    var elemDiv = document.getElementById("fbc");
    var markup = '';
    markup += '<div class="fb-comments" data-href="'+location.href+'" data-num-posts="5" data-width="682" style="margin-top:2em;"></div>';
    elemDiv.innerHTML = markup;
    FB.XFBML.parse(elemDiv);
</script>
<script type="text/javascript" src = "//connect.facebook.net/bg_BG/all.js#xfbml=1&appId=xxxxxxxxxx"></script>

数千谢谢!