如何屏蔽自动弹出的广告?(200分)

  • 主题发起人 主题发起人 mmxsugar
  • 开始时间 开始时间
M

mmxsugar

Unregistered / Unconfirmed
GUEST, unregistred user!
用WebBrowser时打开页面时,如何把那些自动弹出的窗口去掉?
用过NewWindow2事件的PPDisp,但不好。
主窗口老是闪烁,请问有什么更好的方法,如通过系统消息处理掉它。
 
你去查下MYIE2吧。
 
在onnewwindow2中,将cancel置为true
 
楼上的不行呀。
 
>>在onnewwindow2中,将cancel置为true
这样的话就所有的都出不来了.
 
www兄所言甚是。
 
webbrowser的onnewwindows2有一个参数var cancel:wordbool;
cancel:=true;就可以了
 
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch;
var Cancel: WordBool);
begin
Cancel := true;
end;
 
不过我想还是没什么好办法。
因为这会连正常的弹出页面都看不到。
 
恩?
设置一个Timer控件:
IEFrame:=FindWindow ('IEFrame',nil);
SendMessage (IEFrame,WM_SYSCOMMAND,WM_CLOSE,0);
 
好像没什么用呀!
打开21cn的广告仍旧。
 
首先你要分清:
什么是“自动弹出的广告”,什么是“正常的弹出页面”,
如果没办法分清,肯定没办法分开处理。
弹出的广告:一般在页面装载中发生,所以:
1.页面装载前:设置onnewwindows2, cancel
2.页面装载完毕:取消onnewwindows2
很简单? :),这样可以对付大多数“规矩”的弹出广告。
 
to stlont:真是一言惊醒梦中人。
但怎样才知它是完全加载完呢?
我试过DownloadComplete事件,好像页面(特别是大网页)都未
出完就提示加载完毕了。
还有,怎样设回cancel=false呢?
 
可以查询webbrowser的ReadyState,当为READYSTATE_COMPLETE时
就说明已收到全部数据,可以操作了,显示慢出一点没有影响。
 
哦,那如何再设回onnewwindows2的Cancel属性呢?
另:如何得到新窗口的Url呢?使之能够在用WebBrowse打开正常弹出的页面?(50分)
 
--> 再设回onnewwindows2
令 onnewwindows2:=nil;
或 cancel:=false;
--> 新窗口的Url
在onnewwindows2里设ppDisp,
在ppdisp指向的新的browser里的beforeNevigate得到url.
 
to stlont:
ppdisp怎用呀?可否给出代码,让大家都学学。
 
离线库中输入“ppdisp”可以检索到几十篇文章。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部