调试Javascript(和Facebook登录)

问题描述:

我不擅长与JS :)我搞乱添加Facebook登录到我的网站在http://www.comehike.com这里在右上角,你可以看到FB登录按钮呈现,但如果你点击它,它不起作用。调试Javascript(和Facebook登录)

我试着把按钮放入页面的正文,它实际上工作。所以我的感觉是它的一些JS问题导致了这个问题。如何在Firebug或其他工具中调试它?我对这些技术的操作并不流畅。

任何帮助,将不胜感激。我真正想要做的是使FB登录按钮点击能够在头:)

谢谢, 亚历克斯

+0

Firefox的Firebug? – zengr 2011-02-05 18:47:52

+0

是的,我正在尝试使用它,但它很难开始使用...也许它只是我...非常混乱,我不知道该找什么lol – Genadinik 2011-02-05 18:50:00

+0

那么固定它? `window.onload`业务? – 2011-02-05 19:16:49

使用控制台(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(); 

如果你想在windowonload事件执行FB.init()(也cycleBan()?),这是行不通的。以上代码的作用是将值返回FB.init()设置为window.onload处理程序,然后调用cycleBan()。试试这个:读了一下Facebook API docs

window.onload = function() { 
    FB.init(); 
    cycleBan(); 
}; 

编辑,它看起来像你不及格的appIdFB.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()称为”得到的错误,你有没有一直在做同样的事情。