JavaScript:检测“赞”点击

时间:2013-12-15 18:06:20

标签: javascript jquery facebook-like

我使用此代码来检测点击:

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一起使用,因为它是异步的,弹出窗口阻止程序块弹出。 所以我需要其他方法来检测点击。

2 个答案:

答案 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"); 
      }
    });
   } 
);