调试Javascript(和Facebook登录)
我不擅长与JS :)我搞乱添加Facebook登录到我的网站在http://www.comehike.com这里在右上角,你可以看到FB登录按钮呈现,但如果你点击它,它不起作用。调试Javascript(和Facebook登录)
我试着把按钮放入页面的正文,它实际上工作。所以我的感觉是它的一些JS问题导致了这个问题。如何在Firebug或其他工具中调试它?我对这些技术的操作并不流畅。
任何帮助,将不胜感激。我真正想要做的是使FB登录按钮点击能够在头:)
谢谢, 亚历克斯
使用控制台(Firebug,例如),问题是相当清楚的。
Uncaught ReferenceError: FB is not defined www.comehike.com:94
FB.login() called before calling FB.init(). all.js:3
我的猜测是,您正试图在Facebook脚本实际加载之前调用FB.init()
。
94号线包含此代码:
window.onload=FB.init();cycleBan();
如果你想在window
的onload
事件执行FB.init()
(也cycleBan()
?),这是行不通的。以上代码的作用是将值返回由FB.init()
设置为window.onload
处理程序,然后调用cycleBan()
。试试这个:读了一下Facebook API docs后
window.onload = function() {
FB.init();
cycleBan();
};
编辑,它看起来像你不及格的appId
到FB.init()
,我认为这是必要的:
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId:'YOUR_APP_ID', cookie:true,
status:true, xfbml:true
});
</script>
<fb:login-button>Login with Facebook</fb:login-button>
所以你应该改变你的代码使用相同的结构。
编辑2好了,所以我从来没有使用Facebook的API之前 - 只是把再看看你的页面,它看起来像您已经使用了正确的基本模板,我猜你传递的是appId
作为URL参数。哦,这表明我知道多少。
在Firefox上,您可以使用Firebug插件(当您在问题中使用该名称时,我猜测您知道它)。只需转到页面,单击底部状态栏中的Firebug图标,然后使用“脚本”选项卡转到您的脚本代码,设置断点以及单步执行。
您也可以使用内置于Chrome,Safari,Opera甚至IE8之后的开发工具来完成此工作。 (在早期版本的IE中,您可以使用免费版的VS.Net进行调试。)
所有这些的一个好处是,您可以右键单击一个元素(如您的按钮)并选择“检查元素”直接查看有关它的信息。在Chrome上至少(也可能是其他)包括分配给它的事件处理程序,这使得查找事物变得很容易。
如果你通过了不存在的FB应用关键的init()那么只有你
确保“调用FB.init()之前的FB.login()称为”得到的错误,你有没有一直在做同样的事情。
Firefox的Firebug? – zengr 2011-02-05 18:47:52
是的,我正在尝试使用它,但它很难开始使用...也许它只是我...非常混乱,我不知道该找什么lol – Genadinik 2011-02-05 18:50:00
那么固定它? `window.onload`业务? – 2011-02-05 19:16:49