【发布时间】:2010-07-27 20:19:55
【问题描述】:
我正在尝试调试一个大型而复杂的 web 应用程序,它大量使用 DIV、AJAX、动态 HTML 和服务器端代码来完成其工作。
在正常操作下我们没有问题。但是,当我们将 webapp 放入 IFRAME 时,某些函数会在 IE7 中触发崩溃,从而导致浏览器无法运行(所有 CPU 都已使用)。
有哪些工具可以帮助追踪可能发生的事情?将 IE 进程加载到调试器中会给我各种关于寄存器的有趣信息,但我认为问题出在 javascript 中。
我们已经找到了应用程序的一个问题,该问题涉及不正确地重新设置元素的父级(将自身附加到 window. 而不是 document.)
我写了一个测试 IFRAME 页面,将 iframe 的 innerHTML 转储到 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 之前发生的最后一件事。
【问题讨论】:
标签: asp.net ajax internet-explorer-7