更改Facebook评论代码中的网址?

时间:2012-02-10 09:50:43

标签: php javascript facebook

在我的网站上我有超过200页,我想在我的网站上添加Facebook评论功能。我遇到这个问题是我必须更改每个页面的代码(url)。我不想更改每个页面的代码。如果您可以看到包含Url的第二段代码,可以在此处添加location.href之类的方法,以便它可以使用页面的当前网址。我可以这样做吗?我不在乎它是php,javascript还是其他任何错误。

在您的网页上包含一次JavaScript SDK,最好是在打开<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="Url Goes Here" data-num-posts="2" data-width="470"></div>

5 个答案:

答案 0 :(得分:2)

这可以用于在初始加载时获取页面URL。

<?php
function get_current_page()
{
   $page_url = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
   $page_url .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
   return $page_url;
}
?>

<div class="fb-comments" data-href="<?php echo get_current_page(); ?>" data-num-posts="2" data-width="470"></div>

如果在初始页面加载后更改了URL,则需要调用FB.XFBML.parse()来重新加载注释框。这对于在更改状态时不执行完整页面重新加载的ajax站点很有用。

答案 1 :(得分:1)

您可以使用div,然后使用JavaScript中的innerHTML方法动态创建其内容 它将是您的fb-comments标记。您可以使用document.location.href获取当前页面。

在动态创建fb-comments标记并在div内渲染之后,您需要重新分析其内容,以便解释XFBML。您可以使用FB.XFBML.parse()方法执行此操作。

var mydiv = document.getElementById('myCommentsDiv');  
mydiv.innerHTML = 
   '<div class="fb-comments" data-href="' + document.location.href + '" data-num-posts="2" data-width="470"></fb:comments>';  
FB.XFBML.parse(mydiv);  

答案 2 :(得分:1)

一个简单的建议是:

<script type="text/javascript">
document.write('<div class="fb-comments" data-href="' + document.location.href + '"
 data-num-posts="2" data-width="470"></div>');   
</script>

答案 3 :(得分:0)

编辑:在这里找到解决方案: Different Facebook comment box after each ajax call

您必须完全移除该框并将其放回并调用FB.XFBML.parse()

答案 4 :(得分:0)

这个对我有用:

我定义了这样的网址:

define('URL_FB','http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);

然后我回应如下:

<div class="fb-comments" data-href="<?php echo URL_FB; ?>" data-width="470" data-num-posts="10" data-colorscheme="dark"></div>

希望足够清楚。 :)