我在调试12K行JavaScript代码。当然它是由离岸团队写的。现在,我需要找出当我与UI进行交互时调用哪个js函数。无论如何我只是自动跳到正在执行的函数中?调试JavaScript VS 2008
我真的不能把一个突破点,因为我不知道在哪里放置断点?
应用程序仅在IE7上运行!
我在调试12K行JavaScript代码。当然它是由离岸团队写的。现在,我需要找出当我与UI进行交互时调用哪个js函数。无论如何我只是自动跳到正在执行的函数中?调试JavaScript VS 2008
我真的不能把一个突破点,因为我不知道在哪里放置断点?
应用程序仅在IE7上运行!
您可以将VS 2008附加到像Internet Explorer这样的脚本宿主进程。请注意,“脚本宿主”特定于Windows脚本平台,而其他浏览器未使用该平台。
Internet Explorer应配置为“允许脚本调试”,以便VS可以附加到iexplorer.exe 和能够调试在其中运行的脚本。
请记住,这是一个非常令人沮丧的调试体验。如果您可以在更现代的浏览器(包括IE9,其中有体面的开发人员工具)进行调试,请这样做!
将Visual Studio附加到IE7后,可以使用Break All选项来终止任何正在运行的脚本。如果没有脚本正在运行,它将在执行脚本时中断,例如,如果将鼠标悬停在具有onmouseover
侦听器的鼠标上。
,如果你正在寻找一个特定的一段代码这可能会有点麻烦。除了追踪代码直到找到相关部分之外,我认为除了追踪代码之外,还没有真正解决这个问题的方法。
如果这是一个单击按钮时发生的错误,例如,请查看该按钮的HTML代码。如果它有一个onclick
处理函数,那么搜索该函数并在那里设置一个断点,或者将debugger;
这个词添加到该函数的顶部。如果没有onclick
处理程序,请在您的Javascript代码中搜索该按钮的ID
,并查看是否有任何侦听器绑定到该DOM元素。
真的没有理由为什么12000行的Javascript代码应该挫败你的努力,看看发生了什么。找到问题的repro,然后使用Find在JavaScript文件中查找相关代码。另外,我意识到您的网站可能无法在Firefox或Chrome中运行,但它可能在IE8中运行,因为它向后兼容。 IE8有一个更好的调试器,并且还能够探索各种DOM元素,这些元素可以用于跟踪哪些代码在哪里运行。
希望这会有所帮助!
问题是没有onclick。一切都在飞行中生成,然后注入到DIV中。 – azamsharp
我建议安装IE Developer Toolbar。它将允许您在运行时检查DOM。 http://www.microsoft.com/en-us/download/details.aspx?id=18359 –
安装IE8并在IE7模式下运行。在那里使用调试器。升级应用程序,使它在任何浏览器中运行,因为IE7会再见! :) – epascarello