I am trying to use a Facebook Like button via an iFrame, like so:
<iframe id="test" src="http://www.facebook.com/plugins/like.php?
href=http://yoururl.com/&
layout=button_count&
show_faces=false&
width=50&
action=like&
colorscheme=light&
height=21"
scrolling="no" frameborder="0"
style="border:none; overflow:hidden; width:50px;
height:21px;"
allowTransparency="true">
After a user clicks "Like" for the first time, I want to execute some Javascript in my DOM content. How would I go about doing this?
You mean you want to execute some Javascript when you like something?
You can use the Facebook Javascript SDK for that, especially the edge.create
event.
See
- http://developers.facebook.com/docs/reference/javascript/ (for general SDK doc)
- http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/ (for event doc)
This should work with the IFrame-version too. If not, you have to switch to the XFBML-Like button. It definetly works with the XFBML version.
Example:
<!-- Load the SDK (or even better, load it asynchronously. See first link above -->
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
// initalize your Facebook App
FB.init({
appId : 'YOUR APP ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// subscribe to the event
FB.Event.subscribe('edge.create', function(response) {
alert('you liked this');
});
FB.Event.subscribe('edge.remove', function(response) {
alert('you unliked this');
});
</script>
<!--
The XFBML Like Button, if the iframe version doesn't work (not 100% sure)
<fb:like></fb:like>
-->
来源:https://stackoverflow.com/questions/6125631/how-to-execute-script-after-a-user-clicks-like-on-a-facebook-like-button