我使用此代码来检测点击:
FB.Event.subscribe('edge.create',
function(response) {
//to do...
}
);
它运作良好,所以我的问题是什么。 当用户单击like按钮时,它应该打开一个弹出窗口。 我使用的同步调用不会阻止弹出窗口。
$("#div1").click(function(e) {
e.preventDefault();
$.ajax({
url: "./ajax.php",
async: false,
data: "POST",
success: function() {
window.open("./ajax.php","_blank");
}
});
});
此代码适用于按钮,自定义div,图片...但它不适用于类似对象,我试图将'id'属性添加到类似对象或将对象附加到自定义div并检测自定义/外部div点击,但它不起作用。
我不能将它与FB.Event.subscribe
一起使用,因为它是异步的,弹出窗口阻止程序块弹出。
所以我需要其他方法来检测点击。
答案 0 :(得分:1)
这是iFrame和第三方内容的典型问题。
我们可以这样做的一种方法是在FB元素上方放置一个透明div。这个div的点击处理程序在触发时打开我们的弹出窗口。接下来,在同一个处理程序中,我们然后触发它下面的FB元素的单击。如果你发布一个小提琴,我可以看看你的设置是否可行。
答案 1 :(得分:0)
like按钮位于iFrame中,因此您无法附加事件处理程序。但是你可以将AJAX调用添加到Facebook的功能中:
FB.Event.subscribe('edge.create',
function(response) {
$.ajax({
url: "./ajax.php",
async: false,
data: "POST",
success: function() {
window.open("./ajax.php","_blank");
}
});
}
);