Javascript 回调函数参数问题

Javascript 回调函数参数问题,javascript,jquery,facebook,Javascript,Jquery,Facebook,我正在为接受权限的函数编写一个回调函数和一个可选的回调函数 如果用户拒绝权限对话框,则应该传递null。但由于某些原因,即使权限请求失败,我的脚本也总是发出post请求 echo("FB.ensureInit ( function () { FB.Connect.showPermissionDialog('email,offline_access', function(accepted) { if(accepted==null) {a

我正在为接受权限的函数编写一个回调函数和一个可选的回调函数

如果用户拒绝权限对话框,则应该传递
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'});}    
        });
        });"); 
不知道为什么它没有正确读取accepted的值。谢谢你的帮助

如何处理firebug:

console.log(accepted)
看看你能得到什么。可能是未定义的,根据您的逻辑,它仍然可以通过。

使用firebug:

console.log(accepted)

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

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

我将尝试更改为该选项,以测试所有类似于false的值:

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

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

我将尝试更改为该选项,以测试所有类似于false的值:

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

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

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');}
        });
        });
   ");

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

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');}
        });
        });
   ");

是的,效果很好。说了一些关于facebook文档的事情:是的,我查过了文档。不太好。是的,效果很好。说了一些关于facebook文档的事情:是的,我查过了文档。不太好。