将click()事件附加到FaceBook“赞”按钮?

时间:2010-09-15 15:06:07

标签: jquery html facebook iframe

当用户点击“赞”时,我想在页面上执行某些操作。

我认为像下面这样简单的东西会起作用:

<script type="text/javascript">
    $(document).ready(function () {

        $('.connect_widget_like_button clearfix like_button_no_like').live('click', function () {
            alert('clicked');
        });
    });
</script>

这是FaceBook提供的iFrame,用于向页面添加Like按钮:

<iframe 
    id="FBLike"
    src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.MySite.Com... blahblahblah" 
    scrolling="no" 
    frameborder="0" 
    style="border:none; overflow:hidden; width:450px; height:80px;" 
    allowTransparency="true">
</iframe>

我的脚本尝试将click事件绑定到加载页面时加载到iFrame中的锚标记。它不起作用。有什么办法可以让jQuery在点击它时识别出来吗?感谢

5 个答案:

答案 0 :(得分:36)

Facebook API不允许您订阅类似的点击事件,但它允许您订阅类似事件(在完成类似操作时触发):

FB.Event.subscribe('edge.create', function(response) {
  // like clicked
});

请参阅here

答案 1 :(得分:4)

制作PHP(或您使用的任何语言)脚本以从http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.MySite.Com... blahblahblah

中获取源代码

将来自facebook的源码放入您的html页面,然后您可以使用Facebook中的代码在JavaScript / jQuery中执行任何您喜欢的操作。

PHP中CURL的一些示例 - http://www.php.net/manual/en/curl.examples.php

答案 2 :(得分:3)

您无法使用JavaScript访问不属于当前网址的iframe中的元素,因为我猜您正在使用的域名不是facebook.com,您将无法将事件附加到类似按钮就这样。

答案 3 :(得分:2)

人们可以分别使用edge.createedge.remove来检测像“喜欢”按钮的“喜欢”和“不同”事件。

答案 4 :(得分:0)

<script type="text/javascript">
    $(document).ready(function () {

        $('.connect_widget_like_button clearfix like_button_no_like').live('click', function () {
            alert('clicked');
        });
    });
</script>