3

我使用模态对话框。一个模态对话框由一个掩码 div 和一个容器 div 组成。容器 div 包含一个带有模态 aspx 页面的 iFrame。初始化模态对话框时,将掩码和容器添加到页面正文中。当我关闭模态对话框时,遮罩和容器会从正文中移除。

一切正常,当我在 Visual Studio 中开始调试并打开一个新的模式对话框时,我在调试器中的“脚本文档 - Windows Internet Explorer - somePage.aspx”中看到了新页面

但是当我关闭并删除对话框时,页面在 VS 调试器中保持“活动”状态,直到我刷新整个页面。

这很糟糕吗?即使页面从正文中删除,页面是否“还活着”?或者它只是一个 Visual Studio 调试器 UI 的东西?

我发现了这个问题,关于不断增长的脚本块文件。我认为那是同一个问题,但那里并没​​有真正回答这个问题。

4

1 回答 1

2

仅删除包含 iframe 的容器 div是不够的。

我希望这足以删除和销毁 iframe:

$(this.mask).remove();
$(this.container).remove();

该容器包含另一个 div(模式对话框标题)和一个 iframe。使用上述代码终止容器不会删除该 iframe 。看起来它不仅仅是一个 Visual Studio 调试器问题,因为每次我关闭并打开一个新对话框时,Windows 任务管理器中 iexplore.exe 进程的内存也在不断增加。

解决方案: 当我明确删除 iframe 时,页面确实从调试器中消失了!

我可以通过在初始化模态对话框时将 iframe 保存在 var 中来做到这一点,然后在删除模态对话框时显式删除 iframe。这边走:

在创建/初始化模式对话框:

this.frame = this.container.childNodes[0].childNodes[1];

并在关闭模式对话框中:

$(this.frame).remove();
于 2012-06-20T10:58:36.937 回答