如何跟踪哪个Like按钮小部件触发Event.Subscribe edge.create回调?

时间:2012-01-31 17:04:30

标签: facebook callback facebook-like

有没有办法跟踪单击了哪个按钮?我知道你可以使用href和widget,但如果多个按钮中的URL相同则它们都没用。

FB.Event.subscribe('edge.create', function(href, widget) {
    alert('You liked ' + href + widget);
});

所有这一切都是返回URL(如果你在页面上有多个按钮,这对于确定点击了哪个按钮是完全没用的)并且所有widget变量返回的是[object] [object]

有人可以向我提供有关widget变量以及如何使用它的更多信息吗?

这真的很烦人,谷歌和Twitter都用这个非常简单的继承API为什么facebook拒绝让人们知道点击了什么按钮?

2 个答案:

答案 0 :(得分:4)

实际上,可以使用widget参数来判断单击了哪个“赞”按钮。我不知道,因为我可以告诉not documentedthis blog post除外)。

在你的回调中,而不是alert(widget)尝试console.log(widget)。这将显示(在JavaScript控制台中,如Firebug),对象中的所有信息(这比[object]更有用)。

可能有几种方法可以做到这一点,但我尝试过的一种方法是在我的Like按钮中添加一个ID,如下所示:

<fb:like id="myButtonOne" href="http://testurl.com"></fb:like>

然后,在回调中,查看widget.dom.id属性以查看它是否具有我的ID:

FB.Event.subscribe('edge.create', function(href, widget) {
  //console.log(widget); // looks inside the widget object, for testing
  alert(widget.dom.id);
});

你应该得到一个弹出警告,上面写着“myButtonOne”。我给每个按钮一个唯一的ID,您现在可以在edge.create回调中告诉我哪个按钮被点击(即使它们具有相同的URL / href)!

答案 1 :(得分:0)

您可以使用widget参数来获取触发事件的like按钮的HTML元素。

这个新参数最近被添加到官方文档中。 看看这里:http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

相关问题