6

我想根據javascript變量動態更改下面的fb註釋插件的data-href。我正在運行一個閃存swf文件,並通過JavaScript函數將新的鏈接傳遞給html包裝器。當我這樣做時,我想讓fb註釋插件刷新到新的數據 - href鏈接。如何動態更改基於JavaScript變量的Facebook評論插件網址?

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

回答

12

這將加載,腳本會在執行時將清除評論DIV包裝和更換HTML5意見初步意見箱與新的網址框。 JS SDK將解析新框。

此工作需要JS SDK。參考https://developers.facebook.com/docs/reference/javascript/

修復了XFBML從DOM操作渲染


<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')); 

+1

添加了代碼,但執行腳本時,它會清除註釋框,但不會顯示新評論框。我已經加載了JS SDK。 – Steven

+0

從innerHTML渲染時存在一個錯誤,我在頂部的解決方案中進行了編輯,並在http://anotherfeed.com/login.php這裏進行了測試,頁面url 1和url 2有2個鏈接,它們會更改並呈現評論框。 –

+1

謝謝,我通過刪除解析器變量編輯了代碼,它工作。看起來你的編輯代碼也應該工作。 document.getElementById('comments')。innerHTML ='

'; \t FB.XFBML.parse(document.getElementById('comments')); – Steven

2

我發現做的最簡單和有效的方法你Facebook評論框以recog掌握每個頁面的個人URL(特別適合電子商務網站)。

這個腳本添加到您的網站模板您的頂部頭部分(它爲您的評論框格生成德數據href的值:

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

,然後在您的評論框格,添加了ID爲上的JavaScript生成的值:

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

瞧我奉獻那麼多時間去破解這個螺母,我不得不分享,爲您節省一些時間BRE AK! 乾杯!