Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 为什么在WebBrowser.DocumentHandler上关闭表单时会弹出IE窗口_Winforms_Webbrowser Control - Fatal编程技术网

Winforms 为什么在WebBrowser.DocumentHandler上关闭表单时会弹出IE窗口

Winforms 为什么在WebBrowser.DocumentHandler上关闭表单时会弹出IE窗口,winforms,webbrowser-control,Winforms,Webbrowser Control,我有一个表单,它有一个WebBrowser控件。Onload,它导航到某个URL。 在DocumentCompleted事件处理程序上,获取所需数据后,关闭表单。这在大多数情况下都有效,但有时它会在表单关闭后弹出一个IE窗口,其中包含相同的URL 我注意到在DebugView中,它记录了m_useSurfacePresenter 1。如果在调用Close()之前记录此操作,则不会出现弹出窗口。但是,当调用Close()后记录此事件时,会出现弹出窗口。您需要检查该文档中的JavaScript.on

我有一个表单,它有一个WebBrowser控件。Onload,它导航到某个URL。 在DocumentCompleted事件处理程序上,获取所需数据后,关闭表单。这在大多数情况下都有效,但有时它会在表单关闭后弹出一个IE窗口,其中包含相同的URL


我注意到在DebugView中,它记录了
m_useSurfacePresenter 1
。如果在调用Close()之前记录此操作,则不会出现弹出窗口。但是,当调用Close()后记录此事件时,会出现弹出窗口。

您需要检查该文档中的JavaScript.onunload事件,如果该事件设置为在卸载该页面时打开新窗口(浏览器),则当您关闭承载webbrowser控件的winform时,会触发该事件,进而关闭该页面

因此,当您关闭winform时,由于事件在文档/页面-->WB控件-->WinForms表单设置中的链接方式,webbrowser控件中的页面onUnload事件也将因此触发

实际上可以将其设置为nothing,通过运行指向WB控件中页面的特定JS命令,可以将.OnUnload事件设置为“
function(){};
”,这将确保将其设置为nothing/Null。下面是一个代码示例:

window.onunload=函数(){}

让我知道进展如何,如果这不能解决问题,我会帮助你。注意上面提到的是JS,有很多方法可以直接从WB控件执行JS,在web上有很多例子,实际上有两种方法,一种是使用.execScript,另一种是使用更新的方法,即.InvokeScript