Ошибка параметра функции обратного вызова - PullRequest
1 голос
/ 14 июля 2009

Я пишу функцию обратного вызова для функции FB.Connect.showPermissionDialog(), которая принимает разрешения и дополнительную функцию обратного вызова.

Он должен быть передан null, если пользователь отклоняет диалог разрешений. Но по какой-то причине мой скрипт всегда отправляет запрос на публикацию, даже если запрос на разрешение не выполнен.

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 ]

3 голосов
/ 14 июля 2009

Мое первое предположение состоит в том, что значение Javascript null фактически не возвращается, а вместо него возвращается какое-то другое ложноподобное значение.

Я бы попробовал перейти на это, чтобы проверить все ложноподобные значения:

if (!accepted) {alert('failure')} else { 
...
1 голос
/ 14 июля 2009

Может быть, вы должны изменить свою логику:

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');}
        });
        });
   ");
1 голос
/ 14 июля 2009

Делай с клопом:

console.log(accepted)

И посмотри, что ты получишь. Может быть неопределенным, что по вашей логике все еще проходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...