2013-05-08 55 views
2

我試圖使用FB JavaScript SDK做Facebook登錄。Facebook的登錄對話框不使用JavaScript SDK關閉

只有在opera瀏覽器中登錄後才能關閉登錄窗口。 我該如何解決這個問題?

我試過下面的源代碼: (上線this website - LINK

<html> 
    <head></head> 
    <body> 
    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 

     FB.init({ 
      appId: '101103500012652', // App ID 
      channelUrl: '//www.milujse.cz/app/channel.html', // Channel File 
      status: true, 
      cookie: true, 
      xfbml: true 
     }); 

     FB.Event.subscribe('auth.authResponseChange', function(response) { 

      if (response.status === 'connected') { 
      testAPI(); 
      } else if (response.status === 'not_authorized') { 

      } else { 

      } 
     }); 
     }; 

     (function(d) { 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) { 
      return; 
     } 
     js = d.createElement('script'); 
     js.id = id; 
     js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
     }(document)); 

     function testAPI() { 
     FB.api('/me', function(response) { 
      alert('Good to see you, ' + response.name + '.'); 
     }); 
     } 

     function loginFB() 
     { 
     FB.login(function(response) { 
      if (response.authResponse) { 
      testAPI(); 
      } else { 
      } 
     }); 
     } 

     function logoutFB() 
     { 
     FB.logout(function(response) { 
     }); 
     } 
    </script> 

    <input type="button" value="Login" onclick="loginFB(); 
     return false;" /> 
    <input type="button" value="Logout" onclick="logoutFB(); 
     return false;" /> 
    </body> 
</html> 
+0

您是否在控制檯中看到任何javascript錯誤? – rncrtr 2013-05-11 18:58:07

+0

在控制檯中不是javascript錯誤。 – Jenan 2013-05-13 18:24:36

+0

我在其他瀏覽器中遇到了與我的Facebook實現類似的問題。我必須通過login和api方法傳遞迴調函數來維護狀態,但我不知道這是否與Opera問題有關。 – rncrtr 2013-05-13 18:41:20

回答

1

例如關閉瀏覽器的編程瀏覽器獨立登錄/註銷邏輯很難實現。

使用代碼下面和在SETUSER設定斷點(空)

包com.example.vaadintests經過;

import com.vaadin.Application; import com.vaadin.ui.Window; import com.vaadin.ui.Window.CloseEvent; import com.vaadin.ui.Window.CloseListener;

public class VaadintestsApplication extends Application 
{ 
    @Override 
    public void init() 
    { 
     final Window rootWindow = new Window(); 
     setMainWindow(rootWindow); 

     rootWindow.addListener(new CloseListener() 
     { 
      @Override 
      public void windowClose(CloseEvent e) 
      { 
       setUser(null); 
      } 
     }); 

    } 
} 
相關問題