Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 类似Facebook:未捕获类型错误:对象#<;对象>;没有方法';提供';_Javascript_Facebook - Fatal编程技术网

Javascript 类似Facebook:未捕获类型错误:对象#<;对象>;没有方法';提供';

Javascript 类似Facebook:未捕获类型错误:对象#<;对象>;没有方法';提供';,javascript,facebook,Javascript,Facebook,我最近添加了类似facebook的按钮,但是下面的代码在chrome中返回了一个错误:uncaughttypeerror:Object#没有方法'provide' <!-- Facebook --> <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({appId: '121814204514513', status: true, coo

我最近添加了类似facebook的按钮,但是下面的代码在chrome中返回了一个错误:uncaughttypeerror:Object#没有方法'provide'

<!-- Facebook -->
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({appId: '121814204514513', 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);
  }());
</script>
<!-- Facebook -->

window.fbAsyninit=函数(){
init({appId:'121814204514513',状态:true,cookie:true,
xfbml:true});
};
(功能(){
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);
}());
like按钮可以工作,但错误正在发生,有人知道如何解决吗


感谢

最近,当我尝试注入Google Reader时,我遇到了同样的问题(为了这个激动人心的Kynetx编码竞赛:)。all.js以“if(!window.FB)window.FB={…”开头,并声明'provide'方法。在google reader中,FB对象已经存在(不知道为什么或如何创建),因此if中的代码从未执行过。我使用的技巧是在包含之前将FB设置为null“”.谷歌阅读器没有抱怨。在你的情况下,这可能也是一个解决方案。 更新:您可能需要通过以下方式将FB设置为null:

var head = $("head").get(0);  // using jquery
var script2 = document.createElement("script");
script2.innerHTML = "window.FB = null;FB=null;";
head.appendChild(script2);

尽管如此,Loic Devaux提供的代码将实现您的案例中不需要的技巧。他正在解决第三方网站上显示的标记问题

我也遇到了同样的问题,最初添加了此代码来解决它。然后我认为一定是出了什么问题,我没有做正确的事情。我将facebook评论框添加到一个已经有facebook共享按钮的页面。因此,我只是在初始化脚本之后移动共享脚本,错误消失了


我的建议是检查您的页面上是否有多个FB小部件。如果有,请阅读文档并确保在正确的位置添加了正确的脚本。

Loic的解决方案在IE中不起作用。相反,您必须这样做:

var head = $("head").get(0);  // using jquery
var script2 = document.createElement("script");
if (!$.browser.msie ) {
    script2.innerHTML = "window.FB = null;FB=null;";
}else{
    script2.text = "window.FB = null;FB=null;";
}
head.appendChild(script2);

我也遇到了这个问题,你有没有找到解决方案?不确定是否相关,但你可以尝试将其用作html标题:谢谢,这对我也很有用,不过我建议使用类似
$(“head”).append(“window.FB=null;FB=null;”
的东西来获得更多的jQuery-ish。只是想一想