单个页面上有多个 Facebook 评论框?

Posted

技术标签:

【中文标题】单个页面上有多个 Facebook 评论框?【英文标题】:Multiple facebook comment boxes on a single page? 【发布时间】:2011-12-12 23:43:45 【问题描述】:

我在一个页面上列出了三个产品,我希望在每个产品的侧面添加一个小评论框,有点像:https://www.facebook.com/SanukFootwear?ref=ts&sk=app_113298085356151。主要问题是,我似乎不知道如何在页面上添加多个评论框。

我尝试使用 html5 和 XFBML。我现在使用的代码是:

<html xmlns:fb="http://ogp.me/ns/fb#">

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

&lt;fb:comments href="MYURL" num_posts="5" width="500" xid="product_01"&gt;&lt;/fb:comments&gt;

似乎将xid 添加到&lt;fb:comments&gt; 块应该只为该xid 生成一个唯一的cmets 列表。然而,这不起作用。如果我执行以下操作:

&lt;fb:comments href="MYURL" num_posts="5" width="500" xid="product_01"&gt;&lt;/fb:comments&gt;

&lt;fb:comments href="MYURL" num_posts="5" width="500" xid="product_02"&gt;&lt;/fb:comments&gt;

并尝试在其中任何一个上发布,评论都会显示在两者上。允许这些独特的 cmets 有什么我缺少的吗?

sanuk shop facebook 页面的代码是这样的:

<fb:comments xid="featured_product_56062795998_1"  numposts="5" expr:href="##_1" class="  fb_iframe_widget">
    <span>
        <iframe id="f1f0d95ac" name="f341a4ded" scrolling="no" style="border-width: initial; border-color: initial; overflow-x: hidden; overflow-y: hidden; width: 255px; height: 572px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; " class="fb_ltr" src="https://www.facebook.com/plugins/comments.php?api_key=113298085356151&amp;channel_url=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df5542ec34%26origin%3Dhttps%253A%252F%252Fnorthsocial.com%252Ff2d77af7ec%26relation%3Dparent.parent%26transport%3Dpostmessage&amp;locale=en_US&amp;numposts=5&amp;sdk=joey&amp;title=&amp;url=https%3A%2F%2Fnorthsocial.com%2Fapp%2Ftab%2Ffeatured_products%2Fview.php&amp;width=255&amp;xid=featured_product_56062795998_1"></iframe>
     </span>
</fb:comments>

我不知道他们从哪里获得这些 iFrame 内容。我参考了 facebook 开发文档,但一直找不到任何信息。任何帮助将不胜感激!

提前致谢,

特雷

【问题讨论】:

【参考方案1】:

cmets 插件没有我可以在以下位置看到的 xid 参数:https://developers.facebook.com/docs/reference/plugins/comments

您需要为每个评论框指定一个唯一的 URL

【讨论】:

正如 Heliboy23 所说,只需在末尾指定一个锚点。除非您使用的是旧版本,否则没有必要使用 XID。【参考方案2】:

我已经为我的网站的一页解决了多个 cmets 框问题。这对我有用:

生成 FB 代码时,您必须输入“要评论的 URL”。对于第一个框,只需输入 url。对于第二个框,我添加了 mysite.com/#cmets2。对于第三个框,我添加了 mysite.com/#cmets3。等等,等等。这应该为每个 URL 提供一个单独的评论框。希望这可以帮助。

【讨论】:

是否可以为每个线程创建审核服务?是否应该手动创建?谢谢【参考方案3】:

它仍然可以使用下面的代码。

<fb:comments reverse="false" publish_feed="false" showform="true" 
    simple="false" migrated="1" canpost="true" url='[Your URL]' 
     numposts="10" xid="[Unique ID]">
</fb:comments>

【讨论】:

以上是关于单个页面上有多个 Facebook 评论框?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 评论框在 iPhone / Safari 中不起作用

如何将 Facebook 评论整合到我博客上的各个帖子上

将 Facebook 访问令牌传递到评论框

Facebook评论框不显示

使用框数布局使 Facebook 喜欢按钮评论弹出窗口锚定在右侧

如何在单个页面上有多个 jQuery 插件实例?