Internet explorer 8 Facebook XFBML和Internet Explorer 8异步加载问题
我试图在页面上实现一个XFBML注释框。它可以在Firefox和Chrome中使用,但在InternetExplorer8中只能偶尔使用 当页面点击Internet explorer 8 Facebook XFBML和Internet Explorer 8异步加载问题,internet-explorer-8,facebook,xfbml,Internet Explorer 8,Facebook,Xfbml,我试图在页面上实现一个XFBML注释框。它可以在Firefox和Chrome中使用,但在InternetExplorer8中只能偶尔使用 当页面点击FB.xfml.parse('FB-stuff')时,我得到一个“FB未定义”错误。在尝试解析XFBML之前,是否需要检查Facebook Connect脚本是否已完成加载 <script type="text/javascript"> window.fbAsyncInit = function() { FB.in
FB.xfml.parse('FB-stuff')时,我得到一个“FB未定义”错误代码>。在尝试解析XFBML之前,是否需要检查Facebook Connect脚本是否已完成加载
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : '117378991625799',
status : false, // check login status
cookie : false, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
FB.XFBML.parse('fb-stuff');
}());
</script>
window.fbAsyninit=函数(){
FB.init({
appId:'117378991625799',
状态:false,//检查登录状态
cookie:false,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
FB.XFBML.parse('FB-stuff');
}());
您不需要自己调用fb.xfbml.parse,因为您已经在fbAsyninit中指示facebook init为您这样做了。它主要在初始化后向页面添加新的facebook元素并希望对其进行解析和呈现的情况下非常有用
是的,您应该等待javascript库加载。这就是fbAsyninit的全部内容。您为connect库创建了script元素,并将其注入该匿名函数中的dom中,但浏览器加载和计算代码需要一段时间,因此FB不能立即使用。加载脚本后(FB对象可用),它将尝试执行window.fbAsyninit,然后您可以执行任何需要的操作