关于twebbrows的使用问题(200分)

  • 主题发起人 主题发起人 Raffaello
  • 开始时间 开始时间
R

Raffaello

Unregistered / Unconfirmed
GUEST, unregistred user!
想写一个ie的shell
现在碰到用javascript的弹出窗口,它自动用ie打开
如果用
procedure TMainForm.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp := WebBrowser1.Application;
会提示脚本错误,还有像shownews.jsp?12453这种页面也打不开
请问有什么解决方法
 
Twebbrowser 的onNewWindow2事件是在有新窗口打开时触发的
包括javascript,右键打开窗口,ppdisp是传递要打开窗口的handle
代码应该这样写
procedure TMainForm.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
web.hwnd:=ppDisp;//web是你显示新窗口的 Twebbrowser
Cancel=:True;
end;
 
怎么样声明web的类型?请给详细一点的代码,谢谢
 
雨人:

你的方法不可能吧?ppDisp 是 IDispatch,而不是hwnd,
再说hwnd是只读属性啊!不可能负值吧?
 
procedure Tfrm_Explorer.wb_DataInfoNewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp :=web_New.DefaultInterface;
end;
其中,web_New是另一个TWebBrowser控件。
 
Application实现IDispatch接口吗?
 
DefaultInterface
 
后退
顶部