2013-03-06 50 views
2

好吧..這是一個奇怪的,因爲我以前沒有見過。我有一個應用程序是嚴格的服務...沒有涉及到瀏覽器...我想要做的就是使用alert();進行調試。唯一的問題是即使它是一個簡單的警報(「Show me!」),它也會導致Object Expected錯誤。Javascript警報消息運行時錯誤對象預計

請記住......此代碼未附加到任何表單或瀏覽器。那麼我錯過了什麼?我認爲我可以隨時在Javascript中使用警報呼叫...請大家幫助一個可憐的程序員!

謝謝你在前進, 埃裏克

+0

什麼是運行代碼,如果不是瀏覽器?這個節點還是什麼? – 2013-03-06 20:59:55

+0

這是一種服務類型的呼叫。事物正面的代碼是一種表單信息的刮板,可以傳遞給服務的JavaScript內容。我正在嘗試使用警報進行調試,但它不工作.... – 2013-03-06 21:02:32

+1

再一次,您是否可以澄清您正在使用的環境?如果你沒有在瀏覽器中運行,警告可能不存在。你可以使用'console.log'來達到同樣的效果。當你執行這個代碼時,你如何運行它?你正在執行一個應用程序嗎?它是節點嗎? PhantomJS? – 2013-03-06 21:33:41

回答

2

警報()方法是JavaScript的瀏覽器窗口對象的方法,顯示一個警告框,一個消息和一個OK按鈕之一。

窗口對象表示瀏覽器中打開的窗口。如果文檔包含框架,瀏覽器爲HTML文檔創建一個窗口對象,爲每個框架創建一個附加窗口對象。

我相信在指定的情況下,錯誤意味着窗口預期的對象還沒有找到。

+0

謝謝Tolis。這非常有意義......那麼如何獲得警報以顯示是否沒有Window對象立即可用? – 2013-03-06 21:08:30

+0

不要通過警報測試你的JavaScript代碼..你應該使用像Qunit這樣的JavaScript單元測試框架http://qunitjs.com/ – 2013-03-06 21:32:15

+0

不......我沒有測試...調試。我不確定QUnit如何使用我想要弄清楚的功能。問題在代碼處理過程中無法看到發生了什麼。無論如何,我無法正確調試它。 – 2013-03-06 21:38:21

0

你試過window.alert("show me");

由於alert()是一個Window對象方法。

+0

結果是「窗口未定義」。謝謝你輸入,雖然Chirag64 ... – 2013-03-06 21:11:03

+0

你使用什麼平臺/ JavaScript解釋器? – 2013-03-06 21:21:07

+0

優秀的問題。此代碼不是由我們的商店編寫的,我在任何代碼中都沒有看到它使用的是什麼平臺。我們通過Notepad ++進行編輯。 – 2013-03-06 21:24:08

0

如果您沒有在瀏覽器中運行,那麼使用console.log方法可能會帶來更好的運氣 - 再次,很難具體告訴您如何執行腳本,而無需詳細說明您正在執行腳本的環境。

+0

批處理文件執行javascript文件。對不起,我很早就不清楚了。 – 2013-03-06 21:42:49

+0

你能粘貼內容嗎? – 2013-03-06 21:47:45

+0

我不知道我是否可以這麼做......我正在從事的特定商店......我已經想通了如何調試。這是一個痛苦的脖子,但至少我可以看到數據在移動代碼時發生了什麼。 我不得不寫出對象信息到文本文件,以查看它在移動時會發生什麼。我對此感到抱歉......並且我很感激這個幫助...... – 2013-03-06 21:58:17

4

如果您在Windows機器上執行這個腳本,你可以像這樣在JavaScript/Jscript中

瓦爾殼牌=新的ActiveXObject(「WScript.Shell」); Shell.Popup(「Your Debug message」);

+0

我可以建議你將** Var **更改爲** var **,因爲JavaScript區分大小寫。您發佈的代碼可能會引發錯誤。 – 2016-06-07 08:01:33

5

就像在他的答覆中建議praneeth,它是Windows WScript的事情,或在該腳本的在中運行,而只是一個上下文。

這也可行,是不是很praneeth提供什麼樣的冗長:

WScript.Echo("Hello"); 
相關問題