怎么能像iframe上的按钮一样捕捉像facebook这样的事件?

时间:2012-11-20 03:52:46

标签: javascript facebook

我开发了以下语言: http://www.mandanemedia.com/freelancer/

<iframe id="targetFrame" src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fpages/MandaneMediacom/275554465891715&width=300&colorscheme=light&show_faces=true&border_color=%23ffffff&stream=false&header=false&height=258" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:258px;" allowtransparency="true"></iframe>

这是一个iframe,在2秒后显示人们喜欢facebook的按钮。现在问题是客户想要当用户按下按钮时,这个iframe会被关闭。

如何在这种情况下捕获火灾事件。 我可以通过facebook事件捕获它,或者我可以通过javascript捕获它吗?

1 个答案:

答案 0 :(得分:1)

如果您使用社交插件的iframe版本,则无法跟踪事件。您需要使用HTML5或FBML(建议使用HTML5)

您必须在身体标记后加上:

    <div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({appId:'YOURAPPID',channelUrl : '//YOURDOMAIN/channel.html',status:true,cookie: true, xfbml: true });
    FB.Event.subscribe('edge.create',
          function(response) {
            $('#floating-box').hide();
        }
    );
  };


  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/es_ES/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

你的div应该是这样的:

    <div id="floating-box">
    <div class="fb-like-box" data-href="https://www.facebook.com/pages/MandaneMediacom/275554465891715" data-width="300" data-height="258" data-show-faces="true" data-stream="true" data-header="true"></div>
</div>

<强>来源: https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/