首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TWebBrowser处理关闭请求

TWebBrowser处理关闭请求
EN

Stack Overflow用户
提问于 2020-02-26 01:04:58
回答 1查看 120关注 0票数 0

我正在使用TWebBrowser和一个引入了一些新函数的类帮助器(以防这与下面的问题相关):

代码语言:javascript
复制
type
  TWebBrowserEx = class helper for TWebBrowser
  public
    procedure Clear;
    procedure Wait;
    function LoadHTML(const HTML: string; const AFakeURL: string=''): boolean;
  end;

我注意到,如果JavaScript想要关闭浏览器窗口,TWebBrowser的句柄就会被销毁。

代码语言:javascript
复制
<script type="text/javascript">
   window.close();
</script>

调用TWebBrowser.LoadHTML()等会导致异常。

当JavaScript想要关闭窗口时,我想决定我的应用程序做什么。(我的想法是,根据配置设置,要么清除页面并让应用程序保持打开状态,要么关闭应用程序)。

问:我如何处理这个问题?我的第一个猜测是接收WM_DESTROY消息,但我认为它不适用于类帮助器,因为什么都没有发生。

代码语言:javascript
复制
type
  TWebBrowserEx = class helper for TWebBrowser
  private
    procedure MessageDestroy(var msg: TMessage); message WM_DESTROY; // <-- will never be called
  public
    procedure Clear;
    procedure Wait;
    function LoadHTML(const HTML: string; const AFakeURL: string=''): boolean;
  end;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-26 01:20:54

您可以将TWebBrowserOnWindowClosing处理程序分配给如下内容:

代码语言:javascript
复制
procedure TForm1.WebBrowser1WindowClosing(
    ASender: TObject;
    IsChildWindow: WordBool;
    var Cancel: WordBool
);
begin
    Cancel := True;
end;

这不会产生一个“你想关闭窗口吗?”对话框中,并简单地放弃关闭窗口的JavaScript请求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60399807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档