2011-12-25 109 views
0

我想知道我应该在哪里放置的FB.login functione在我的web应用程序,因为在IE 8在哪里放置函数的代码的FB.login

运行时是一个错误“FB是未定义”但是,在我刷新之后,错误消失了。

+0

你可以发布你的代码片段或你的代码结构吗? – Shaunak 2011-12-25 11:09:28

回答

0

检查这一项:

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

你应该异步加载FB库。 (独立的) 一旦加载=> 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

但是,放置页面时会触发该功能。我想通过点击一个按钮来触发该功能。 – 2011-12-25 10:54:26

+0

“FB.login会打开一个弹出窗口,因此当绑定到用户驱动的点击时,您应该只调用FB.login。大多数浏览器阻止弹出窗口,除非它们是从用户事件发起的,例如单击按钮或链接。” ===>那么,如果我想要从用户点击启动的功能,我应该在哪里放置代码? – 2011-12-25 11:04:21

+0

哦,你可以混合使用jquery ...我会更新...秒 – 2011-12-25 11:46:24