2

これにより、そのhttp://domain.com/some/abcからのコメントが表示されます

<fb:comments href="http://domain.com/some/abc" num_posts="20" width="500"></fb:comments>
<div id="fb-root"></div>
<script type="text/javascript">
(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=1234567890";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

ユーザーがフォームの値をabcからxyzに変更した場合、ページをリロードせずにhttp://domain.com/some/xyzからのコメントを表示するためのコメントプラグインが必要です。

<form id="name">
    <select>
        <option value="abc" selected>abc</option>
        <option value="xyz">xyz</option>
    </select>
</form>

それは実行可能ですか?(fb devページに情報が見つかりませんでした。)私はjQueryを使用しています。ありがとう!

4

1 に答える 1

4

はい、それは実行可能です。私はここであなたの望む結果を再現することができたと信じています;

jsfiddleが死んだ場合のスニペット:

(function loadfb(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=1234567890";
    fjs.parentNode.insertBefore(js, fjs);
})(document, 'script', 'facebook-jssdk');

function changeDomain(value) {
    var newVal = '<fb:comments href="http://example.com/some/' + value + '" num_posts="20" width="500"></fb:comments><div id="fb-root"></div>';
    $('#comments').html(newVal);
    FB.XFBML.parse($('#comments').get(0),function(){
        $(".FB_Loader").remove();
    });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="name">
  <select onChange="changeDomain(this.value);">
    <option value="abc" selected>abc</option>
    <option value="xyz">xyz</option>
  </select>
</form>
<div id="comments">
  <fb:comments href="http://example.com/some/abc" num_posts="20" width="500"></fb:comments>
  <div id="fb-root"></div>
</div>

私は最初にコメントdiv(fb:commentsタグを格納するために作成した)のinnerHTMLを置き換え、次にFB.XFBML.parse();同じコメントdivを呼び出すことによってそれを行いました。クレジットは、その方法について私に警告したこの投稿に行きます。

于 2012-05-24T21:43:15.543 に答える