2011-02-05 107 views
1

我不擅長與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

回答

1

使用控制檯(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參數。哦,這表明我知道多少。

1

在Firefox上,您可以使用Firebug插件(當您在問題中使用該名稱時,我猜測您知道它)。只需轉到頁面,單擊底部狀態欄中的Firebug圖標,然後使用「腳本」選項卡轉到您的腳本代碼,設置斷點以及單步執行。

您也可以使用內置於Chrome,Safari,Opera甚至IE8之後的開發工具來完成此工作。 (在早期版本的IE中,您可以使用免費版的VS.Net進行調試。)

所有這些的一個好處是,您可以右鍵單擊一個元素(如您的按鈕)並選擇「檢查元素」直接查看有關它的信息。在Chrome上至少(也可能是其他)包括分配給它的事件處理程序,這使得查找事物變得很容易。

0

如果你通過了不存在的FB應用關鍵的init()那麼只有你

確保「調用FB.init()之前的FB.login()稱爲」得到的錯誤,你有沒有一直在做同樣的事情。