2013-03-06 49 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"); 
相关问题