Can';得不到';创建';回调以使用facebook javascript SDK

Can';得不到';创建';回调以使用facebook javascript SDK,facebook,facebook-javascript-sdk,Facebook,Facebook Javascript Sdk,我正在尝试使用Facebook javascript SDK的“edge.create”回调函数在用户单击页面上的like按钮时发送警报。最终,我的目标是让它重新生成页面上的样式,以便在单击时可以动态调整facebook小部件div的大小。尽管如此,我无法让回调正常工作,即使是警报 <html lang="en"> <head> <title></title> <script src="http://connect.fac

我正在尝试使用Facebook javascript SDK的“edge.create”回调函数在用户单击页面上的like按钮时发送警报。最终,我的目标是让它重新生成页面上的样式,以便在单击时可以动态调整facebook小部件div的大小。尽管如此,我无法让回调正常工作,即使是警报

<html lang="en">
<head>
    <title></title>
    <script   src="http://connect.facebook.net/en_US/all.js#appId=216985861663967&amp;xfbml=1"></script>
    <script>
        FB.Event.subscribe('edge.create', function() {
            alert('Liked');
        });
    </script>
</head>
<body>
<div id="fb-root"></div>
<fb:like send="false" layout="button_count" show_faces="false" font=""></fb:like>

</body>
</html>

FB.Event.subscribe('edge.create',function()){
警惕(“喜欢”);
});
你知道为什么这样不行吗?单击按钮时,会显示错误:

不安全的JavaScript试图使用URL访问帧


后来又说域、协议和端口必须匹配。

根据您的描述,我猜您是在本地服务器上用Chrome/Safari进行测试

铬/狩猎 尝试将“喜欢”按钮URL设置为现有网址:

<fb:like href="http://google.com" ...

您必须指明您的应用程序id。 如果你仍然没有任何应用程序,只需在facebook的开发者部分创建它

例如:

<script>
    window.fbAsyncInit = function() {
        FB._https = true;
        FB.init({appId: 'YOURAPP', status: true, cookie: true, xfbml: true, channelURL : 'http://www.YOURSITE/channel.html'});
        FB.Event.subscribe('edge.create', function(response) {
            alert('Liked');
        });
    };
</script>

window.fbAsyninit=函数(){
FB._https=true;
init({appId:'YOURAPP',状态:true,cookie:true,xfbml:true,channelURL:'http://www.YOURSITE/channel.html'});
FB.Event.subscribe('edge.create',函数(响应){
警惕(“喜欢”);
});
};
注意,在文件中,放置下一行-

<script src="http://connect.facebook.net/en_US/all.js"></script>

你不能在Facebook应用程序中使用
alert()
,至少不能在Chrome中使用(如果Firefox仍然允许,他们可能不会使用太久)

改用
console.log()
,并打开Javascript控制台查看发出的消息

<script src="http://connect.facebook.net/en_US/all.js"></script>