使用jQuery捕获点击Facebook'Like'按钮

crm*_*cco 5 javascript jquery facebook facebook-like

我正在查看Facebook开发人员文档,找到一些示例代码,这些代码可以让我在"赞"按钮上捕获点击事件.它指出:

如果您使用的是按钮的XFBML版本,则可以通过FB.Event.subscribe订阅"edge.create"事件.

我没有使用XFBML,这是我的代码:

<div class="social_net_button facebook_button">
      <div id="fb-root"></div>
      <script>(function(d, s, id) {
              var js, fjs = d.getElementsByTagName(s)[0];
              if (d.getElementById(id)) {return;}
              js = d.createElement(s); js.id = id;
              js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
              fjs.parentNode.insertBefore(js, fjs);

              FB.Event.subscribe('edge.create',
                     function(response) {
                          alert('You liked the URL: ' + response);
                     }
              );

            }(document, 'script', 'facebook-jssdk'));</script>
      <div class="fb-like" data-href="http://www.facebook.com/pages/Ayrshire-Minis/160330240663397" data-send="false" data-layout="button_count" data-width="70" data-show-faces="false" data-action="recommend"></div>
    </div>
Run Code Online (Sandbox Code Playgroud)

是否可以通过jQuery捕获"赞"按钮?

Rob*_*ler 5

你可以试试这个.

http://jsfiddle.net/qkyAe/

文档:http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

FB.Event.subscribe('edge.create', function(response) {
    console.log('clicked');
});?
Run Code Online (Sandbox Code Playgroud)

我认为只有用户点击并且它增加了类似的数量(仅登录用户),因为我没有FB帐户我无法尝试.请告诉我,如果有效:)

更新:

FB对象来自您已嵌入的脚本.


crm*_*cco 2

解决方案似乎是异步发送请求。下面的代码在放置在我的fb-likediv 类之后时有效:

     <script>
           window.fbAsyncInit = function() {
                   FB.init({
                                           status: true, // check login status
                                           cookie: true, // enable cookies to allow the server to access the session
                                           xfbml: true  // parse XFBML
                                   });
           };
     </script>
     <script type="text/javascript">
           window.fbAsyncInit = function() {
             FB.Event.subscribe('edge.create',
                     function(response) {
                           _gaq.push(['_trackSocial', 'facebook', 'like', document.location.href]);
                     }
             );
           };
     </script>
Run Code Online (Sandbox Code Playgroud)