在Visual Studio中调试JavaScript时“没有为当前文档加载符号”

时间:2008-09-22 15:21:37

标签: javascript asp.net visual-studio debugging

我正在开发一个.NET 3.5网站,在一个解决方案下有三个项目。我在这个项目中使用jQuery。我想使用Visual Studio JavaScript调试器来逐步执行我的JavaScript代码。如果我在任何.js文件中设置断点,我会收到一条警告:

  

断点当前不会被击中。没有为此文档加载任何符号。

我该如何解决这个问题?我猜测Visual Studio在解析一些jQuery代码时遇到了一些麻烦。我将尝试用扩展版本替换jQuery.js的最小化版本,但我不认为这会解决它。

14 个答案:

答案 0 :(得分:12)

确保在互联网选项中启用script debugging。如果您认为它已经开启,请仔细检查它。

答案 1 :(得分:12)

我在Visual Studio 2008中遇到了相同的行为,在花了几分钟试图加载符号后,我最终使用了一种解决方法 - 在“调试器”中添加一行;我的JavaScript文件中的命令。

在您在Internet Explorer中重新加载脚本后添加debugger;之后,它将允许您打开脚本调试器的新实例,并且它将停止在您的调试器命令上,让您从那里进行调试。 / p>

在这种情况下,我已经在Firebug中调试了JavaScript,但我也希望针对Internet Explorer进行调试。

答案 2 :(得分:5)

我遇到了同样的问题,但我通过更改Internet Explorer中的浏览器设置解决了这个问题。转到菜单工具 - > Internet选项,选择高级选项卡,然后确保未选中“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(其他)”。

另外,我需要将Internet Explorer设置为我的默认浏览器,通常设置为Firefox。为此,在Visual Studio中右键单击Solution Explorer中的任何可浏览文件,然后选择“浏览...”选择Internet Explorer并单击“设置为默认值”。

我不确定是否有办法让调试与其他浏览器一起运行,但如果Visual Studio只能与Internet Explorer一起使用,那就不会让我感到惊讶。

此外,您可能需要执行“附加到进程”并添加IExplorer.exe以启动调试程序。

答案 3 :(得分:3)

我建议使用FireBug进行JavaScript调试。给它一个旋转:)

答案 4 :(得分:3)

我终于找到了答案。

将调试器附加到iexplore.exe进程时,需要确保选择“脚本”作为调试选项之一。

这是红色框中的按钮:Screenshot of Select Button in Attach to Process Window

然后在下一个屏幕上,选择脚本:Screenshot of Select Code Type window

这会警告您无法同时调试Managed和Script,但这应该没问题,因为您的托管代码是您的服务器代码,而是您附加到Web进程(aspnet或w3wp)。

你会知道你做得对,因为VS 2008将在解决方案资源管理器中加载所有与该页面相关的脚本文档(内联内容,评估内容等)。

您将拥有对DOM的完全访问权限,即时窗口可以正常工作,等等。它很漂亮。

答案 5 :(得分:3)

您可能要查找的另一件事是JavaScript代码中的语法错误。这就是今天发生在我身上的事。没有符号会加载,因为我的代码中有一个太多的括号。 IntelliSense几乎没有注册错误。一旦我修复了语法错误,一切正常。

答案 6 :(得分:3)

所有这些答案都是正确的,但还有一件事需要检查。直到昨天,我始终能够从Visual Studio(2012)内部调试我的JavaScript代码。我在解决方案中添加了一个Silverlight项目,该项目打开了Silverlight调试器。这是我的问题。

在网络应用程序的属性页面上 - >开始选项 - >在页面底部确保" Silverlight"未经检查。实际上,我只检查过ASP.NET,现在调试器通过Visual Studio。

取消选中它,现在调试器停止在"初始化"按照我的意愿运作。

答案 7 :(得分:1)

您必须等待IDE解析JavaScript代码。只需等待一段时间,您应该看到JavaScript代码更改颜色。然后,您就可以添加断点。

答案 8 :(得分:1)

我的解决方案是将IE从版本9更新到11.希望对某人有所帮助。和平!

答案 9 :(得分:1)

我在Visual Studio 2013上遇到了同样烦人的问题,没有调试器的JavaScript开发只是自杀。

我所做的就是右键点击断点红点 - > 禁用断点,然后再次右键单击 - >启用断点。

这使得调试器再次像JavaScript一样在JavaScript上工作​​。

答案 10 :(得分:0)

我有时会遇到外部JavaScript文件的问题 - 这是由浏览器缓存保存到文件的旧副本引起的。强制刷新链接到JavaScript代码的页面解决了这种情况下的问题。

当然,请确保您的调试器已附加到正确的浏览器进程。 ;)

答案 11 :(得分:0)

这可能是显而易见的,但我偶然发现了这一点,所以也许其他人也会这样。我没有设置Internet Explorer来处理HTML / HTTP,因此当我在Visual Studio中按下运行按钮时它没有启动。

相反,我正在启动Firefox。我去了开始按钮|默认程序,设置Internet Explorer的所有默认值,然后调试开始在Visual Studio中为我工作,没有任何其他大惊小怪。

答案 12 :(得分:0)

当您的解决方案有多个Web项目时,即使它们是从不同端口上的其他ASP.NET Development Server(WebDev.WebServer40.exe)实例提供服务,也会发生这种情况。

答案 13 :(得分:0)

如果在解决方案中运行两个或多个Web项目,并且在不同Web中的同一位置有多个具有相同名称的脚本文件,则开发Web服务器可能会提供错误的文件,从而导致此问题。

在我的情况下,删除额外的副本解决了问题。