每个项目都有 Facebook 点赞按钮吗?

发布于 2025-01-08 16:18:22 字数 1233 浏览 0 评论 0原文

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

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

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

这里有几个问题:

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 按钮,我需要为每个项目指定不同的 data-href 。

2)我需要向url发送一些参数。假设单击项目时,我应该将项目 id 发送到 URL。现在我可以将项目 id 发送到我的 URL,但它仅在我的 iframe 中执行,而不是在 facebook URL 中执行。我该怎么做?

我认为第二个问题可以回答我的第一个问题。

编辑:我正在使用 jQuery 执行此操作。

编辑2: 所以,我在我的网站上使用 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 的新部分

I have Facebook iframe app where I am pulling content with JSON and representing it in a list with search criteria.

On item click new content shows on the same page (using ajax), and that page shows more info about item. I want to add a LIKE button for every clicked item.

But it must be a different URL so I can publish it on my FB wall. So when I check link from Like button on wall, it will redirect me on that special item.

Here are few issues:

1) How to define Like button for every item?

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

Here is LIKE button, I need to specify different data-href for every item.

2) I need to send some parameters to url. Let's say when clicking on item, I should send item id to URL. Right now I can send item id to my URL but it is doing just in my iframe -- not in facebook URL. How can I do this?

I think second problem would give an answer for my first problem.

Edit: I am doing this using jQuery.

edit2:
so, i am using jquery for my site, pulling content with JSON and representing it with html and jquery, i have, it is all the same page, but on click i hide some contents and show another, so my main content is a list of items, click on item i hide main content, and i show item info content

so, it is all one page, so it has the same URL (main content, item content,... all the same URL)

so for adding LIKE buttons for every item, i need to make a difference between those items, so i done this

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

so right now, every item has its own URL, which i done manually, so right now every item has own URL which i could use for LIKE button

but, when i alert this new window.location.href is seems all right, i get this new location with #id=12345 included, but when i try to send that location to LIKE button data-href it is always just the main location, without this new part includind item id #id=12345

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不甘平庸 2025-01-15 16:18:22

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

问题:

单个项目网址
FB 要求每个可以点赞的项目都有一个“社交图端点”。因此,您还需要支持仅返回“item”的 url。这是单个项目的 URL。如果 FB 查看者想要了解有关该项目的更多信息,他们也会点击该 URL。

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

此外,Facebook 将查询文章 B 的 url,以获取单个项目的 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 的文档:

Yes, you can create FB Like buttons for "items" shown on dynamically created screen content (eg Ajax popups).

Issues:

Individual item urls
FB demands a "social graph endpoint" for each item that can be liked. So you also need to support a url which returns only the "item." This is the url for the individual item. It is also the url that a FB viewer will click on if they want to find out more about the item.

Example: a page shows a list of articles. There is an individual Like button next to each article. When a person "Likes" article B, it is shown in their FB stream. When they click on "Article B" in the stream, it should go to a page that only shows article B.

Also, the url for just article B will be queried by Facebook to obtain the FB meta headers for the individual item (image, classification, etc).

Parsing the new dom for FB items Depending on which method you use for adding FB like buttons et al, you may need to tell FB to explicitly (re-)parse the new parts of the dom that you just added dynamic content to. (Your pop-up.)

Since you know the element that you added the popup to, there is no need to tell FB to reparse your entire dom. Tell them to parse starting at the beginning of your newly added/changed element:

Code I use:

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

Docs from FB on this:

作死小能手 2025-01-15 16:18:22

将其放入 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() 规范。

Place this in a for loop, and you should be fine.

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

See .html() and .attr() specs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文