簡體   English   中英

更改Facebook注釋代碼中的URL?

[英]change the url in facebook comments code?

在我的網站上,我有200多個頁面,我想在我的網站上添加Facebook評論功能。 我遇到的問題是,我必須更改每個頁面的代碼(URL)。 我不想更改每個頁面的代碼。 如果您可以看到第二個包含Url的代碼,那么我可以在其中添加諸如location.href之類的方法,以便它可以使用頁面的當前url。 我可以這樣做嗎? 我不在乎它是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>

這可用於獲取初始加載時的頁面網址。

<?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網站很有用。

一個簡單的建議是:

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

您可以使用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);  

這個為我工作:

我這樣定義URL:

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>

希望足夠清楚。 :)

編輯:在這里找到解決方案: 每個ajax調用后不同的Facebook評論框

您必須完全刪除該框並將其放回並調用FB.XFBML.parse()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM