webbrowser的 NewWindow2 Event 有一个IDISPATH接口,怎样冲这个接口获得将要浏览的URL(100分)

  • 主题发起人 主题发起人 hejiesi
  • 开始时间 开始时间
H

hejiesi

Unregistered / Unconfirmed
GUEST, unregistred user!
webbrowser的 NewWindow2 Event 有一个IDISPATH接口,
怎样冲这个接口获得将要浏览的URL
 
我也想知道,不过你确定这是可行的吗?
 
应该可以,有一些浏览器元件过滤Javascrib用的可能就是这个接口
 
用EmbeddedWB,点击链接的时候将触发OnTranslateURL事件,参数中就有将要浏览的
URL,至于是否让其弹出新窗口,设个标志,在OnNewWindow2中处理就行了。
 
To unreal:
  不会吧?我自己的程序就是这样做的。
 
To CathyEagle
请问EmbeddedWB和OnTranslateURL怎样来的,怎样使用。
 
To CathyEagle:
网页里自己弹出的窗口就不触发OnTranslateURL,(比如网易的)
而大多数人要过滤的不会是自己点的东西。

如果没有别的办法,研究一下MIME Filter会有帮助。不过这样替换要写很多代码,情况
也比较复杂,还要对Html和java script比较熟。总之是很麻烦...但是一定能解决这个问题。
不过我觉得应该可以不这样绕远的。
想要简单的也有,用EmbededWB把Java Script关了,不过有点得不偿失.
 
To unreal:
  网页里自己弹出的窗口不触发OnTranslateURL,但是会触发OnNewWindow,
你可以自己设定,如果是用户点出来的窗口,在OnNewWindow中就让它弹出来,
而页面自己弹出来的窗口,在OnNewWindow中就将它Cancel掉,不可以吗?

To hejiesi:
  到这里找http://www.intelligo.net/iedelphi/
 
其实由页面用Javascrib弹出来的我也不一定都要禁止它,
所以有必要知道弹出窗口所浏览的URL,还有我想知道
webbrowser的 OnNewWindow2 Event的 IDispath接口
的用法,所以还请各位大虾指点一下.
 
我最近也一直在研究这个问题,希望各位能够多多指点。谢了!

请问EmbeddedWB哪里有下?
 
http://www.intelligo.net/iedelphi/
 
附加功能 将问题提前
 
将新建的webbrowser的IDISPATH赋予IDISPATH后,监视新建的webbrowser的浏览新URL消息
就可以获得.
 
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppdisp:=WebBrowser2.DefaultDispatch;
end;

procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
showmessage(url);
end;

哇,跟飞机说的是一个意思
 
最少20天内请回来自己提前一下
 
To:g622 "最少20天内请回来自己提前一下" 是什么意思?
 
兄台把分分了吧!下面摘自MSDN,注意红字。

NewWindow2 Event

ppDisp An object expression that, optionally, receives a new,
hidden WebBrowser or InternetExplorer object with <font color=red>no URL loaded</font> .
 
多人接受答案了。
 
后退
顶部