触发javascript的错误 |
|
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
我在pagecontrol控件上放了WebBrowser控件,希望点击WebBrower中的打开链接后还在该WebBrowser中显示,即产生新的tabsheet,上面有WebBrowser,显示新的网页,而不是跳出IE浏览器。
后经timhuang兄和wushang兄指点用NewWindow2事件。代码如下:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
newtab : TTabSheet;
newweb : TWebBrowser;
begin
newtab := TTabSheet.Create(Self) ;
newtab.PageControl := PageControl1;
newtab.Caption := 'PageControl1';
newweb := TWebBrowser.Create(self);
newweb.ParentWindow := newtab.Handle;
TOleControl(newweb).Parent :=newtab;
newweb.Align := alClient;
newweb.OnNewWindow2 := WebBrowser1NewWindow2;
newweb.OnBeforeNavigate2 := WebBrowser1BeforeNavigate2;
ppDisp := newweb.DefaultDispatch;
end; procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
TTabSheet(TOleControl(Sender).Parent).Caption := url;
end;
现运行时发现,上有些网点(如"www.dragonsky.com")会出现信息"Could not obtain Ole Control window handle",且有时网页代码自动打开窗口(皆为触发javascript的广告条)时产生一个空白的TTabSheet。错在哪儿?
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |