回调函数参数问题

时间:2009-07-14 17:44:02

标签: javascript jquery facebook

我正在为FB.Connect.showPermissionDialog()函数编写一个回调函数,该函数接受权限和可选的回调函数。

如果用户拒绝权限对话框,则应该传递null。但由于某些原因,即使权限请求失败,我的脚本也始终发出post请求。

echo("FB.ensureInit (  function () { 
        FB.Connect.showPermissionDialog('email,offline_access',
        function(accepted) {
             if(accepted==null) {alert('failure');} else {
             $.post(\"http://www.domain.com/permissions.php\",
                   { username:$userID,mode:'accepted'});}    
        });
        });"); 

不确定为什么它没有正确读取接受的值。谢谢您的帮助。

3 个答案:

答案 0 :(得分:3)

我的第一个猜测是实际上没有返回Javascript null值,而是返回了一些其他类似false的值。

我会尝试更改为测试所有类似虚假的值:

if (!accepted) {alert('failure')} else { 
...

答案 1 :(得分:1)

使用萤火虫:

console.log(accepted)

看看你得到了什么。可能是未定义的,根据你的逻辑仍然通过。

答案 2 :(得分:1)

也许你应该改变你的逻辑:

echo("FB.ensureInit (  function () { 
        FB.Connect.showPermissionDialog('email,offline_access',
        function(accepted) {
             if(accepted !== null) {
             $.post(\"http://www.domain.com/permissions.php\",
                   { username:$userID,mode:'accepted'});}
             } else {alert('failure');}
        });
        });
   ");