[英]Facebook Javascript SDK FB Undefined
尝试使用Facebook JS SDK时,我不断遇到错误FB undefined
。 当我通过IE上的JavaScript调试器进行查看时,它会在页面加载期间正确运行,最后,它只是未定义的,没有任何事件触发。 目标:使页面标签刷新最顶层的页面,以超越粉丝群。
关于我在这里缺少什么的任何想法?
码:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function(){
FB.init({
appId : 'APP CODE INSERTED HERE',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'URL to Channel .ASPX'
});
// Additional initialization code here
FB.Event.subscribe('edge.create',
function(response){
top.location.href = 'Page to refreshed inserted here';
});
};
(function(d)
{
var js, id = 'facebook-jssdk';
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document)
);
</script>
您用于异步加载SDK的JavaScript与Facebook SDK文档当前显示的内容不匹配。 见下文:
// Load the SDK Asynchronously
(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));
加载SDK的两个JavaScript块非常相似。 您的JavaScript使用:
d.getElementsByTagName('head')[0].appendChild(js);
加载SDK。 FB记录的最新版本使用:
ref = d.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(js, ref);
您的版本添加了源引用,以通过附加到HEAD HTML标签来加载FB JavaScript。 最新版本通过找到第一个SCRIPT引用并在该引用之前插入FB引用来实现此目的。
也许您的问题是由这两种方法之间的细微差异引起的。
排除这种情况的一种方法是,通过将以下HTML放入页面的页眉中,来临时对FB JavaScript的加载进行临时硬编码:
<head>
<script type="text/javascript" src="http://connect.facebook.net/en_us/all.js"></script>
.
.
.
</head>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.