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

问题描述:

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

location.href 

这样我就不必更改网址了。这甚至有可能吗?我怎样才能做到这一点?

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> 

data-href="+location.href+"你的问题在于你的这部分代码。确保您使用的是完全合格的有效网址。

+0

在这种情况下,当前页面的网址应该显示出来。 – 2012-01-15 18:53:57

+0

这就是我之后的 – 2012-01-15 19:04:30

+0

您是运行服务器端脚本还是每个页面都是静态html文件? – DMCS 2012-01-15 19:12:02

我能够解决这个使用一点点的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代码,评论将不会显示?!我迷路了...

+0

我现在发现,即时通讯使用的代码,当你按照从评论者的Facebook配置文件的链接,URL看起来像这样的“http:\\ sitename.com/page/?querystring”(用于\\显示的目的;) 所以我知道问题的评论没有显示时,下面的链接是因为“/”后面的“网页”的网址。使用facebook提供的代码,这不会发生。有谁知道如何解决这个问题? – 2012-02-03 17:05:57

谢谢你(Enlil)!这是我对最后一个想法的返工,因为我只在客户端使用它:

<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> 

成千上万的感谢!