2012-11-20 34 views
0

我已經制定了以下玲: http://www.mandanemedia.com/freelancer/如何在iframe上捕獲像Facebook一樣的按鈕事件?

<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

如果您使用iframe版本的社交插件,則無法跟蹤事件。你需要爲使用(建議HTML5)的HTML5或FBML

你有你的身體標記之後,包括這個:

<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/

+0

感謝您的幫助,我已經改變它從iframe,只是edge.creat e不行,請你指導我? http://www.mandanemedia.com/freelancer/demo3/ – Danial

相關問題