有没有办法跟踪单击了哪个按钮?我知道你可以使用href和widget,但如果多个按钮中的URL相同则它们都没用。
FB.Event.subscribe('edge.create', function(href, widget) {
alert('You liked ' + href + widget);
});
所有这一切都是返回URL(如果你在页面上有多个按钮,这对于确定点击了哪个按钮是完全没用的)并且所有widget变量返回的是[object] [object]
有人可以向我提供有关widget变量以及如何使用它的更多信息吗?
这真的很烦人,谷歌和Twitter都用这个非常简单的继承API为什么facebook拒绝让人们知道点击了什么按钮?
答案 0 :(得分:4)
实际上,可以使用widget
参数来判断单击了哪个“赞”按钮。我不知道,因为我可以告诉not documented(this 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/