0

这是我在我的网站上喜欢我的 Facebook 页面的脚本。

<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);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-like-box" data-href="http://www.facebook.com/#!/ConcessionnaireCaronMazda" data-width="300" data-height="100" data-show-faces="false" data-stream="false" data-header="false"></div>
<div id="fb-root"></div>

单击按钮时如何发出警报?

4

2 回答 2

2

您应该使用FB.Event.subscribe来订阅edge.create事件(它适用于 HTML5 和 XFBML 版本的Like Box Social Plugin

FB.Event.subscribe('edge.create', function(pageURL){
  alert('User liked page: ' + pageURL);
});

注意:FB.Event.subscribe只有在页面上完全加载Facebook JS-SDK后,您才能使用,以确保它已加载,您可以使用window.fbAsyncInit以下功能:

window.fbAsyncInit = function() {
  // Here Facebook JS-SDK is loaded and you may use it.
  // FB.init call should be placed here if you use it...
  // Otherwise you should use next JS-SDK URL
  // `//connect.facebook.net/en_US/all.js#xfbml=1&appId=APPLICATION_ID`

  // Subscribe to event
  FB.Event.subscribe('edge.create', function(pageURL){
    alert('User liked page: ' + pageURL);
  });
}

更新:

仔细检查一下,您似乎需要使用应用程序才能订阅事件,并且您只能在站点/画布 URL 中的 URL 上这样做,否则将引发下一个错误:

应用程序配置不允许给定 URL。: 应用程序配置不允许一个或多个给定 URL。它必须与 Connect 或 Canvas URL 之一匹配,或者域必须与应用程序的基域之一相同或其子域。

于 2012-02-19T22:10:57.790 回答
0

看起来您可能需要使用 XFMBL 版本,然后您可以使用 FB.Event.subscribe 方法 edge.create。

喜欢 Box 文档 - http://developers.facebook.com/docs/reference/plugins/like-box/

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

于 2012-02-19T20:51:28.377 回答