Delphi中WebBrowser拦截网页Alert对话框消息(转)
2024-10-19 04:31:27
interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, ActiveX; type
IDocHostShowUI = interface(IUnknown)
['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end; TWebBrowser = class(SHDocVw.TWebBrowser,IDocHostShowUI)
protected
function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
end; type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} { TWebBrowser } function TWebBrowser.ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand,
dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;
begin
Result := S_FALSE;
end; function TWebBrowser.ShowMessage(hwnd: THandle; lpstrText,
lpstrCaption: POLESTR; dwType: Integer; lpstrHelpfile: POLESTR;
dwHelpContext: Integer; var plResult: LRESULT): HRESULT;
begin
//plResult := MessageBoxW(hwnd,PWChar(lpstrText),'Title',);//这里屏蔽了alert
Result := S_OK;
end; procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('E:/alert.htm');
end; end.
方法是实现了IDocHostShowUI接口,重写了弹出消息的方法。
最新文章
- JavaWeb---总结(五)Http协议
- SDcard进行文件的读取
- HDU 5120 Intersection(几何模板题)
- 汇编-显示我放到AL中的数值
- php 四种基础算法 ---- 选择排序法
- AJAX结合PHP整理复习
- Problem : 1022 ( Train Problem I )
- 2017 ES GZ Meetup分享:Data Warehouse with ElasticSearch in Datastory
- 记录Queue插入的时候报错
- VRay材质练习(一):水、玻璃、牛奶
- IDEA导入Eclipse项目
- Vue学习资料
- Spark RDD Action 简单用例(一)
- Idea配置CheckStyle
- VK Cup 2016 - Qualification Round 1 (Russian-Speaking Only, for VK Cup teams) C. Promocodes with Mistakes 水题
- CentOS按电源键关机
- ES6 async 与 await 实战
- 开源监控软件ganglia
- My97datepicker日期控件
- 迅为4412开发平台Zigbee模块在物联网智能家居中的应用