6

以下のfbコメントプラグインのdata-hrefをjavascript変数に基づいて動的に変更したいと思います。フラッシュswfファイルを実行していて、javascript関数を介してdata-hrefの新しいリンクをhtmlラッパーに渡します。その場合、fbコメントプラグインを新しいdata-hrefリンクに更新する必要があります。

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

2 に答える 2

12

これにより、最初のコメントボックスが読み込まれ、スクリプトが実行されると、コメントdivラッパーがクリアされ、html5コメントボックスが新しいURLに置き換えられます。その後、JSSDKは新しいボックスを解析します。

この作業にはJSSDKが必要です。https://developers.facebook.com/docs/reference/javascript/を参照してください

dom操作からのxfbmlレンダリングの修正


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

于 2012-06-20T15:26:32.600 に答える
2

Facebookのコメントボックスで各ページの個々のURLを認識できるようにするための最も簡単で効果的な方法を見つけました(特にeコマースサイトに適しています)。

このスクリプトをWebサイトテンプレートの上部ヘッダー部分に追加します(コメントボックスdivのdedata-href値を生成します。

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

次に、コメントボックスのdivで、JavaScriptで生成された値のIDを追加します。

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

Voilá。私はこのナッツを割るのにとても多くの時間を費やしました、私はあなたが休憩のためにいくらかの時間を節約するためにそれを共有しなければなりませんでした!乾杯!

于 2015-07-07T09:30:36.030 に答える