在Visual Studio中调试JavaScript时"未为当前文档加载任何符号"
我正在一个.NET 3.5网站上,在一个解决方案下有三个项目。我在这个项目中使用jQuery。我想使用Visual Studio JavaScript调试器逐步浏览我的JavaScript代码。如果我在任何.js文件中设置了断点,则会收到一条警告,内容为:
The breakpoint will not currently be hit. No symbols have been loaded for this document.
我该如何解决?我猜想Visual Studio在通过某些jQuery代码进行解析时遇到了一些麻烦。我将尝试用扩展版本替换最小版本的jQuery.js,但我认为这不会解决。
解决方案
我们必须等待IDE解析JavaScript代码。稍等片刻,我们应该会看到JavaScript代码更改颜色。然后,我们将能够添加断点。
我建议使用FireBug进行JavaScript调试。试一下:)
有时,外部JavaScript文件会出现此问题,这是由浏览器缓存保留了文件的旧副本引起的。在这种情况下,强制刷新链接到JavaScript代码的页面可以解决此问题。
当然,请确保调试器已连接到正确的浏览器进程。 ;)
确保在Internet选项中打开脚本调试。如果我们认为它已打开,请仔细检查。
我在Visual Studio 2008中遇到了相同的行为,花了几分钟尝试加载符号后,我最终使用了一种变通方法,在其中添加了一行"调试器"。我的JavaScript文件中的命令。
添加debugger;
之后,当我们在InternetExplorer中重新加载脚本时,它将使我们调出脚本调试器的新实例,并且它将停止在debugger命令上,从而可以从此处进行调试。
在这种情况下,我已经在Firebug中调试JavaScript,但是我也想针对Internet Explorer进行调试。
我终于找到了我认为的答案。
将调试器添加到iexplore.exe进程时,需要确保选择"脚本"作为调试选项之一。
这是一个红色框中的按钮:添加到"处理"窗口中的"选择"按钮的屏幕快照
然后在下一个屏幕上,选择"脚本:选择代码类型的屏幕截图"窗口
这将警告我们不能同时调试Managed和Script,但这应该没问题,因为托管代码是服务器代码,而是连接到Web进程(aspnet或者w3wp)。
我们会知道我们做对了,因为VS 2008会在解决方案资源管理器中加载与该页面有关的所有脚本文档(内联内容,评估内容等)。
我们将拥有对DOM的完全访问权限,即时窗口将可用,依此类推。它非常漂亮。
我遇到了同样的问题,但是我通过更改Internet Explorer中的浏览器设置解决了该问题。转到菜单工具-> Internet选项,选择高级选项卡,然后确保未选中"禁用脚本调试(Internet Explorer)"和"禁用脚本调试(其他)"。
另外,我需要将Internet Explorer设置为默认浏览器,通常将其设置为Firefox。为此,在Visual Studio中,只需在解决方案资源管理器中右键单击任何可浏览的文件,然后选择"浏览方式...",选择Internet Explorer,然后单击"设置为默认值"。
我不确定是否可以通过其他浏览器运行调试程序,但是如果Visual Studio仅与InternetExplorer配合使用,这也不会令我感到惊讶。
另外,我们可能需要执行"添加到进程"并添加IExplorer.exe
以启动调试器。