如何跟踪哪个Like按钮小部件触发了Event.Subscribeedge.create回调



有什么方法可以跟踪点击了哪个按钮吗?我知道你可以使用href和widget,但如果多个按钮中的URL相同,它们都是无用的。

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

所有这些都是返回URL(如果页面上有多个按钮,那么这对于确定点击了哪个按钮是完全无用的),所有小部件变量返回的都是[object][object]

有人能给我更多关于小部件变量以及如何使用它的信息吗?

这真的很烦人,谷歌和推特都把这件事做得很简单,没有他们的API,为什么脸书拒绝让人们知道点击了什么按钮?

实际上,可以使用widget参数来判断单击了哪个Like按钮。我不知道,因为据我所知,它没有被记录下来(除了在这篇博客文章中)。

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

可能有几种方法可以做到这一点,但我刚刚尝试的一种方法是在我的"点赞"按钮中添加一个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)!

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

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

最新更新