Facebook Javascript SDK FB Undefined

Facebook Javascript SDK FB Undefined

本文关键字:Undefined FB SDK Javascript Facebook      更新时间:2023-09-26

尝试使用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);

以加载开发工具包。 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>