全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1082
推到 Plurk!
推到 Facebook!

关于 TWebBrowser的NewWindows3事件

尚未結案
Delhpi
一般會員


發表:9
回覆:14
積分:4
註冊:2008-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-09-01 21:05:17 IP:112.81.xxx.xxx 訂閱
 win xp2后, TWebBrowser控件 有NewWindows3事件

以前网上看见下面代码,用来过滤一些网站的弹出窗口。
比如 http://www.sina.com.cn/,打开主页时,还有弹出窗口。调试发现 dwFlags = 4,所以能起到屏蔽效果。

procedure TFrmWeb.WebNewWindow3Event(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool; dwFlags: Cardinal; const bstrUrlContext,
bstrUrl: WideString);
if dwFlags <= 4 then // dwFlags <=4 for auto popup
Cancel := true
else
....

end;

但是 现在发现,这样也会屏蔽了一些正常的弹出窗口(当时 dwFlags = 0 ),现在只能 取消这样的判断。

看了MSDN
http://msdn.microsoft.com/en-us/library/aa768337(v=vs.85).aspx

dwFlags
The flags from the NWMF enumeration that pertain to the new window.

是一个枚举,

Flags used by INewWindowManager::EvaluateNewWindow. These values are factors in the decision of whether to display a pop-up window.

Syntax

typedef enum NWMF {
NWMF_UNLOADING = 0x00000001,
NWMF_USERINITED = 0x00000002,
NWMF_FIRST = 0x00000004,
NWMF_OVERRIDEKEY = 0x00000008,
NWMF_SHOWHELP = 0x00000010,
NWMF_HTMLDIALOG = 0x00000020,
NWMF_FROMDIALOGCHILD = 0x00000040,
NWMF_USERREQUESTED = 0x00000080,
NWMF_USERALLOWED = 0x00000100,
NWMF_FORCEWINDOW = 0x00010000,
NWMF_FORCETAB = 0x00020000,
NWMF_SUGGESTWINDOW = 0x00040000,
NWMF_SUGGESTTAB = 0x00080000,
NWMF_INACTIVETAB = 0x00100000
} NWMF;


dwFlags,我浏览不同的网页,测试到不同的值,0,4,6

想请教,如何利用这个变量,来实现 屏蔽那些广告的弹出窗口,但是又不误 屏蔽正常的弹出窗口呢?
系統時間:2017-10-21 16:20:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!