我正在尝试调试大量复杂的Web应用程序,它们大量使用DIV,AJAX,动态HTML和服务器端代码来完成其工作。有什么工具可以跟踪IE7 javascript问题?
在正常操作下,我们没有问题。但是,当我们将webapp放入IFRAME中时,某些函数会在IE7中触发崩溃,导致浏览器无法运行(所有使用的CPU)。
有什么工具可以帮助追踪可能发生的事情?将IE进程载入调试器给了我各种有关寄存器的迷人信息,但我认为问题出在javascript上。
我们已经找到了一个问题的应用程序已经是涉及元素的不正确重排根(东西依附于的document.
window.
代替)
我写的转储IFRAME的innerHTML进入测试IFRAME页textarea,所以它可以在各种状态下进行比较,但只显示静态属性,我无法确定哪些javascript事件与元素相关联或确定处理程序是否正在触发。
IE8,Firefox,Chrome等没有相同的行为。
理想情况下,我希望能够让我在已知良好状态下快照DOM(或JavaScript VM?),然后“就在它发生之前”,以便我们可以找出添加/删除/缺失/不同。那里有什么?
更新:我现在试图使用IE开发工具栏来追踪它。
更新2:的IE7崩溃发生时跟随这AJAX代码:
function Sys$UI$Control$get_element() {
/// <value domElement="true" locid="P:J#Sys.UI.Control.element"></value>
if (arguments.length !== 0) throw Error.parameterCount();
return this._element;
}
的return this._element;
线之前,我失去了IE浏览器出现这种情况的最后一件事。
太棒了,忘了这一点。我使用的是古老的Microsoft Script Debugger,它至少在死亡之前找到了“最后的好函数调用” - 在Microsoft.Ajax.js中的东西... – mwalker 2010-07-27 20:44:45
默认情况下嵌入在IE 7及更高版本中。对于6和以下你需要下载工具栏。 – 2010-07-28 11:14:04