有什么方法可以跟踪点击了哪个按钮吗?我知道你可以使用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/