Я использую TWebBrowser с помощником класса, который вводит некоторые новые функции (в случае, если это имеет отношение к проблеме ниже):
type
TWebBrowserEx = class helper for TWebBrowser
public
procedure Clear;
procedure Wait;
function LoadHTML(const HTML: string; const AFakeURL: string=''): boolean;
end;
Я заметил, что если JavaScript хочет закрыть браузер окно, дескриптор TWebBrowser разрушается.
<script type="text/javascript">
window.close();
</script>
Вызов TWebBrowser.Load HTML () et c. приведет к исключению.
Я бы хотел решить, что будет делать мое приложение, когда JavaScript захочет закрыть окно. (Моя идея заключается в том, чтобы на основании параметра конфигурации либо очистить страницу и оставить приложение открытым, либо закрыть приложение).
Вопрос: Как мне это сделать? Моим первым предположением было получить сообщение WM_DESTROY, но я думаю, что оно не работает с помощниками классов, потому что ничего не происходит.
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;