2009-07-14 149 views
1

我正在爲接受權限和可選回調函數的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

我的第一個猜測是,Javascript null值實際上並未返回,而是返回其他一些類似假的值。

我會嘗試改變這種測試所有假樣值:

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

是啊是偉大的工作。雖然說了一些關於Facebook文檔的信息:P – 2009-07-14 18:34:42

1

做與螢火蟲:

console.log(accepted) 

,看看你在說什麼了。可能是未定義的,根據你的邏輯仍然通過。

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