我正在开发一个.NET 3.5网站,在一个解决方案下有三个项目。我在这个项目中使用jQuery。我想使用Visual Studio JavaScript调试器来逐步执行我的JavaScript代码。如果我在任何.js文件中设置断点,我会收到一条警告:
断点当前不会被击中。没有为此文档加载任何符号。
我该如何解决这个问题?我猜测Visual Studio在解析一些jQuery代码时遇到了一些麻烦。我将尝试用扩展版本替换jQuery.js
的最小化版本,但我不认为这会解决它。
答案 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服务器可能会提供错误的文件,从而导致此问题。
在我的情况下,删除额外的副本解决了问题。