2010-07-15 30 views
1

我剛開始爲一個項目做一些Javascript工作,我主要是後端工作,所以我很抱歉在這個新的!此外,不使用JavaScript框架,因爲我想在讓自己的一切變得非常簡單之前瞭解基本原理:)非常困惑 - JavaScript沒有被執行 - 除非在Firebug中打開控制檯?

所以,這裏是我的問題/困惑:我寫了一個動態更改窗體的小javascript。這就是我所說的代碼:

// loads the initial box 
window.onload = initList(environment_box); 

// loads artifacts on each change to environment select box 
environment_box.onchange = changeList; 

這就像魔法一樣 - 在CHROME中就是這樣!我從來沒有注意到它在Firefox中不工作(它只是一個內部工具,所以我可以假設體面的瀏覽器,但我認爲,如果它在Chrome中工作,它將在Firefox中工作!)。所以,我做了一些調查,似乎代碼不會在Firefox中執行。我鞭打螢火蟲,想看看發生了什麼事。

有趣的是,當我在Firebug上啓用Console時,我的代碼被執行了!我很困惑,爲什麼,我非常感謝我能得到的任何幫助。謝謝!

-Shawn

+0

嘗試添加一個簡單的'alert()'到你的代碼中,看看是否有任何東西被觸發。您的函數中可能會有一些間歇性問題,導致代碼有條件地工作/失敗。 – HurnsMobile 2010-07-15 21:38:52

回答

10

要調用在JavaScript上console一些方法是我最好的猜測。 Chrome已將console定義爲默認,所以這不是問題。

在Firefox,但是,有沒有這樣的全局對象(不是沒有Firebug的),所以當你嘗試調用一個未定義的對象上像一個屬性,

console.log(..); 

它拋出一個異常,你是不是捕捉,所以JavaScript執行停止。

+0

哇。那可能就是這樣。我的一個朋友告訴我使用console.log,因爲它很棒,而且看起來好像!我現在就試試你的理論! – shawnjan 2010-07-15 21:43:51

+0

你是男人;) – shawnjan 2010-07-15 21:46:02

+0

我不能接受4分鐘的答案,但我會。 – shawnjan 2010-07-15 21:46:24

1

您可能正在調用大多數Web瀏覽器中默認不存在的控制檯對象的方法。它可能總是在基於webkit的瀏覽器(如Chrome)上可用,但使用firefox/IE(/ opera?)時,它需要一個外部附加組件,無論是firebug還是JavaScript依賴項。

簽出類似firebugx的東西,它只是將控制檯對象的最常見方法定義爲無操作功能。

相關問題