如何在 Web 浏览器控件 c# 中禁用 javascript 卸载事件

本文关键字:javascript 卸载 事件 Web 浏览器 控件 | 更新日期: 2023-09-27 18:31:20

我正在使用Web浏览器控件导航到具有JavaScript卸载事件的网站。当我尝试导航到其他地方时,会出现一个弹出窗口,提示我是要"留在页面上"还是"离开页面"。如果我继续试图离开,就会抛出一个COMException。

如何防止此类弹出窗口出现在我的网络浏览器中?

编辑:
当我准备好导航到另一个网页时,如何禁用 Javascript?

如何在 Web 浏览器控件 c# 中禁用 javascript 卸载事件

你可以做这样的事情(德尔福代码):

var
  WrkIHTMLWindow2: IHTMLWindow2;
  WrkIHTMLWindow2Disp: IHTMLWindow2Disp;
begin
  WrkIHTMLWindow2 := IHTMLDocument2Disp(WrkIWebBrowser2.Document).parentWindow;
  if WrkIHTMLWindow2.QueryInterface(IHTMLWindow2Disp, WrkIHTMLWindow2Disp) = S_OK then
    if not VarIsNull(WrkIHTMLWindow2Disp.onbeforeunload) then
      WrkIHTMLWindow2Disp.onbeforeunload := NULL;