2012-05-30 112 views
0

我在调试12K行JavaScript代码。当然它是由离岸团队写的。现在,我需要找出当我与UI进行交互时调用哪个js函数。无论如何我只是自动跳到正在执行的函数中?调试JavaScript VS 2008

我真的不能把一个突破点,因为我不知道在哪里放置断点?

应用程序仅在IE7上运行!

+0

安装IE8并在IE7模式下运行。在那里使用调试器。升级应用程序,使它在任何浏览器中运行,因为IE7会再见! :) – epascarello

回答

0

您可以将VS 2008附加到像Internet Explorer这样的脚本宿主进程。请注意,“脚本宿主”特定于Windows脚本平台,而其他浏览器未使用该平台。

Internet Explorer应配置为“允许脚本调试”,以便VS可以附加到iexplorer.exe 能够调试在其中运行的脚本。

请记住,这是一个非常令人沮丧的调试体验。如果您可以在更现代的浏览器(包括IE9,其中有体面的开发人员工具)进行调试,请这样做!

0

将Visual Studio附加到IE7后,可以使用Break All选项来终止任何正在运行的脚本。如果没有脚本正在运行,它将在执行脚本时中断,例如,如果将鼠标悬停在具有onmouseover侦听器的鼠标上。

enter image description here

,如果你正在寻找一个特定的一段代码这可能会有点麻烦。除了追踪代码直到找到相关部分之外,我认为除了追踪代码之外,还没有真正解决这个问题的方法。

如果这是一个单击按钮时发生的错误,例如,请查看该按钮的HTML代码。如果它有一个onclick处理函数,那么搜索该函数并在那里设置一个断点,或者将debugger;这个词添加到该函数的顶部。如果没有onclick处理程序,请在您的Javascript代码中搜索该按钮的ID,并查看是否有任何侦听器绑定到该DOM元素。

真的没有理由为什么12000行的Javascript代码应该挫败你的努力,看看发生了什么。找到问题的repro,然后使用Find在JavaScript文件中查找相关代码。另外,我意识到您的网站可能无法在Firefox或Chrome中运行,但它可能在IE8中运行,因为它向后兼容。 IE8有一个更好的调试器,并且还能够探索各种DOM元素,这些元素可以用于跟踪哪些代码在哪里运行。

希望这会有所帮助!

+0

问题是没有onclick。一切都在飞行中生成,然后注入到DIV中。 – azamsharp

+0

我建议安装IE Developer Toolbar。它将允许您在运行时检查DOM。 http://www.microsoft.com/en-us/download/details.aspx?id=18359 –