【发布时间】:2016-01-19 04:49:38
【问题描述】:
我的 windows MFC 应用程序有一个嵌入的 WebBrowser 控件,它承载一个 Web 应用程序,当用户单击一个通过 javascript window.open() 调用显示弹出窗口的链接时,它会导致 iexplorer.exe 被启动以显示弹出窗口。
当这个弹出窗口关闭时,iexplore.exe 会关闭,但是它需要很长时间才能关闭,如果用户单击链接再次启动弹出窗口,则会显示 javascript 错误:
“已安排系统关闭”,-我认为这是与 ie 关闭有关的通用 COM 错误消息。
在我的测试中,我观察到 Internet Explorer 11 进程 iexplore.exe 最多需要 15 秒才能退出。相比之下,Internet Explorer 8 几乎立即退出。
这可以通过启动 Internet Explorer 11 并打开 taskmgr.exe 以查看启动的两个 iexplore.exe 进程来轻松验证。一个是 64 位主机进程,另一个是托管选项卡内容的 32 位进程。当 Internet Explorer 窗口关闭时,32 位进程会立即退出,但 64 位主机进程会停留几秒钟。
仅当 iexplore.exe 正在关闭时才会出现此错误。如果出现以下情况,则不会发生:
- 用户等待 iexplore.exe 终止
- 使用任务管理器杀死 iexplorer.exe
- 或确保已打开 Internet Explorer 窗口,这样如果弹出窗口关闭,iexplore.exe 不会因为仍在显示窗口而终止。
有人有什么想法吗?
【问题讨论】:
标签: javascript mfc internet-explorer-11 citrix xenapp