Facebook赞每个项目的按钮?

时间:2012-02-23 15:07:49

标签: javascript jquery facebook

我有Facebook iframe应用程序,我使用JSON提取内容并将其表示在具有搜索条件的列表中。

在项目上单击新内容显示在同一页面上(使用ajax),该页面显示有关项目的更多信息。我想为每个点击的项目添加一个LIKE按钮。

但它必须是一个不同的URL,所以我可以在我的FB墙上发布它。因此,当我从墙上的Like按钮检查链接时,它会将我重定向到该特殊项目。

以下是一些问题:

1)如何为每个项目定义Like按钮?

<div class="fb-like" data-href="LINK FOR LIKE BUTTON" data-send="true" data-layout="button_count" data-width="450" data-show-faces="true" data-colorscheme="dark"></div>

这是LIKE按钮,我需要为每个项目指定不同的数据-href。

2)我需要向url发送一些参数。让我们说点击项目时,我应该将项目ID发送到URL。现在我可以将项目ID发送到我的网址,但它只是在我的iframe中 - 而不是在Facebook网址中。我怎么能这样做?

我认为第二个问题可以解决我的第一个问题。

编辑:我是用jQuery做的。

EDIT2: 所以,我正在使用jquery为我的网站,用JSON拉取内容并用html和jquery表示它,我有,它是完全相同的页面,但点击我隐藏一些内容并显示另一个,所以我的主要内容是一个列表项目,点击项目我隐藏主要内容,我显示项目信息内容

所以,它只是一个页面,因此它具有相同的URL(主要内容,项目内容,......所有相同的URL)

所以为每个项目添加LIKE按钮,我需要在这些项目之间做出改变,所以我这样做了

'window.location.href=window.location.href + "#id=" + propertyid;' 

所以现在,每个项目都有自己的URL,我手动完成,所以现在每个项目都有自己的URL,我可以用于LIKE按钮

但是,当我提醒这个新的window.location.href似乎没问题时,我得到了包含#id = 12345的新位置,但是当我尝试将该位置发送到LIKE按钮data-href时,它总是只是主要位置,没有这个新部分包括项目ID#id = 12345

2 个答案:

答案 0 :(得分:3)

是的,您可以为动态创建的屏幕内容(例如Ajax弹出窗口)上显示的“项目”创建FB Like按钮。

的问题:

个别项目网址 FB要求每个可以喜欢的项目的“社交图终点”。所以你还需要支持一个只返回“item”的url。这是单个项目的URL。如果他们想要了解有关该项目的更多信息,它也是FB查看器点击的URL。

示例:页面显示文章列表。每篇文章旁边都有一个单独的Like按钮。当一个人“喜欢”文章B时,它会显示在他们的FB流中。当他们点击流中的“文章B”时,它应该转到仅显示文章B的页面。

此外,Facebook将查询文章B的网址以获取单个项目的FB元标题(图像,分类等)。

解析FB项目的新dom 根据您使用哪种方法添加FB等按钮等,您可能需要告诉FB明确(重新)解析dom的新部分您刚刚添加了动态内容。 (你的弹出窗口。)

由于你知道你添加弹出窗口的元素,因此无需告诉FB重新整理你的整个dom。告诉他们从新添加/更改的元素的开头开始解析:

我使用的代码:

if (event_data) { // event_data was received, show it
  panel.setBody(event_data); // set the pop-up's body
  if (!this.ie && typeof(FB) != "undefined" && FB.XFBML)
    {FB.XFBML.parse(this.panel_el);} // Parse FaceBook markup
....

来自FB的文件:

答案 1 :(得分:1)

将它置于for循环中,你应该没问题。

var elements = $("#divId").html();
$("#divId").html(elements + "like button code");
$("#divId.fb-like").attr("data-href", "what you want to link to");

请参阅.html().attr()规范。