2010-06-24 70 views
4

我最近增加像按钮Facebook的,但下面的代码在Chrome中返回一个错误:遗漏的类型错误:对象#有没有方法“提供”Facebook的喜欢:遗漏的类型错误:对象#<an Object>没有方法“提供”

<!-- 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 --> 

像按钮的作品,但错误是anoying,有谁知道如何解决?

感谢

+0

我也有这个问题,你有没有找到一个解决方案? – 2010-12-31 17:14:26

+0

不确定它是否相关,但你可以尝试使用它作为你的html头文件:<!DOCTYPE HTML PUBLIC“ - // W3C // DTD HTML 4.01 // EN”“http://www.w3.org/TR/ html4/strict.dtd“> – Roch 2010-12-31 20:38:41

回答

7

我最近买了同样的问题,当我试图注入http://connect.facebook.net/en_US/all.js到谷歌阅读器(这一激动人心的Kynetx编码竞赛:http://code.kynetx.com/2011/04/26/250-to-build-kynetx-facebook-send-within-24hrs-ends-apr-27th/)。 all.js以“if(!window.FB)window.FB = {...”开头并声明'provide'方法。在谷歌阅读器中,FB对象已经存在(不知道为什么或者它是如何创建的),所以if里面的代码从未被执行过。我使用的技巧是在包含“http://http://connect.facebook.net/en_US/all.js”之前将FB设置为空。谷歌阅读器没有抱怨。这可能也是您的情况的解决方案。 更新:您可能需要设置FB为null这样:

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

酷,这也适用于我。 – 2011-04-28 22:02:13

+0

2012 ...它仍然有效:) – ggzone 2012-01-02 11:00:48

+0

谢谢 - 它也适用于我 – 2012-02-08 12:18:05

2

虽然,由卢瓦克Devaux提供的代码将做到这一点是不是在你的情况需要的伎俩。他正在解决与第三方网站上显示的标记问题...

我有同样的问题,并最初添加此代码来解决它。然后我认为一定有什么不对,而我没有把事情做好。我将Facebook评论框添加到已经拥有Facebook分享按钮的页面。所以我刚刚在初始化脚本之后移动了共享脚本,并且错误消失了。

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

1

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); 
相关问题