2011-12-25 2 views
0

Я задаюсь вопросом, где я должен поместить functione FB.login в моем веб-приложение, как есть ошибка «FB неопределен» при работе в IE 8.Где разместить код функции FB.login

Однако, после обновления, ошибка исчезла.

+0

Можете ли вы опубликовать фрагмент кода или структуру вашего кода? – Shaunak

ответ

0

Проверьте это:

FaceBook Login Button Error: FB.login() called before calling FB.init()

вы должны загрузить библиотеку Fb асинхронно. (independentant) Как только он загружен => window.fbAsyncInit может быть запущен, и вы больше не будете получать случайную загрузку.

<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({appId: 'MYAPPID', status: true, cookie: true, xfbml: true});   
}; 
(function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
}()); 

// Once all is loaded 
$(window).load(function(){ 
    $("#myButton").click(function(){ 
     FB.login(function(response) { 
      //User logged in! 
      if (response.session) { 
       alert('YAY!'); 
      } 
     }, {perms:'email,read_stream,publish_stream'}); 
    }); 
}) 
</script> 
+0

Но размещение там приведет к срабатыванию функции при загрузке страницы. Я хочу вызвать функцию, нажав на кнопку. –

+0

«FB.login открывает всплывающее окно, поэтому вы должны вызывать только FB.login при привязке к клику, нажатому пользователем. Большинство браузеров блокируют всплывающие окна, если они не были инициированы из пользовательского события, например, нажатие на кнопку или ссылка." ===> Итак, где я должен поместить код, если я хочу, чтобы функция, инициированная пользователем, нажала? –

+0

О, вы можете смешать это с jquery ... Я обновлю ... сек –