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

请教如何让网页总在webBrowser自身打开,而不是使用系统缺省的浏览器打开

尚未結案
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-29 16:06:15 IP:219.135.xxx.xxx 訂閱
在webBrowser中浏览网页,如果遇到target="_blank"  ,就会用IE打开,有什么办法可以让他在本身SDI中的WEBBROWSER中打开吗? 不用tab控件更好。。。


我试过
procedure TForm1.WebBrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
// 將新視窗在自身開啟
ppdisp := webBrowser.Application;
end;
还是跳出新窗
sadnui
一般會員


發表:0
回覆:5
積分:6
註冊:2008-08-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-01 10:57:06 IP:58.50.xxx.xxx 訂閱
 

[code delphi]
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:=WebBrowser2.Application;
end;

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

[/code]
------
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-04 02:40:26 IP:125.90.xxx.xxx 訂閱
这种方法已经试过,没有用呀,再请教其他的方法。。。
sadnui
一般會員


發表:0
回覆:5
積分:6
註冊:2008-08-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-04 10:33:24 IP:58.50.xxx.xxx 訂閱

===================引 用 yesoft 文 章===================
这种方法已经试过,没有用呀,再请教其他的方法。。。
  1. procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  2. procedure TForm1.WebBrowser2Before(Sender: TObject;
这是两个web控件
一个监视NewWindow\ 第二个监视Navigate2,并把url传给第一个 WebBrowser

------
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-05 00:17:18 IP:219.135.xxx.xxx 訂閱
我已经在form1中放置了两个webbrowser的。。

还是打开系统的浏览器。
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-05 13:27:55 IP:61.222.xxx.xxx 訂閱
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);
var
URL : WideString;
begin
Cancel := True;
With TWebBrowser(Sender) do
begin
URL :=((Document as IHTMLDocument2).activeElement as IHTMLElement).GetAttribute('href', 0);
Navigate(URL);
end;
end;
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-09-06 02:51:44 IP:219.135.xxx.xxx 訂閱
uses mshtml, ActiveX,ComObj;

这用了这段代码,还是弹出系统缺省浏览器的新窗口,真的没有办法了吗?
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);
var
URL : WideString;
begin
Cancel := True;
With TWebBrowser(Sender) do
begin
URL :=((Document as IHTMLDocument2).activeElement as IHTMLElement).GetAttribute('href', 0);
Navigate(URL);
end;
end;

編輯記錄
yesoft 重新編輯於 2008-09-06 02:56:29, 註解 無‧
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-09-06 10:37:01 IP:122.126.xxx.xxx 訂閱
看有無觸發 NewWindow2 事件。若無便要使用其他方法。
或po上網址才能瞭解原因。
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-09-06 22:22:01 IP:59.34.xxx.xxx 訂閱
兄弟可以做一个极简单的实例吗?谢谢。


===================引 用 RootKit 文 章===================
看有無觸發 NewWindow2 事件。若無便要使用其他方法。
或po上網址才能瞭解原因。
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-09-08 07:17:50 IP:61.222.xxx.xxx 訂閱
上述程式碼,已經過實際測試驗證。
HTML 內容定義一個捷徑 Target ='_blank'
點選後在目前的WebBrowser 顯示目標。

===================引 用 yesoft 文 章===================
兄弟可以做一个极简单的实例吗?谢谢。


===================引 用 RootKit 文 章===================
看有無觸發 NewWindow2 事件。若無便要使用其他方法。
或po上網址才能瞭解原因。
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-09-09 08:34:29 IP:59.34.xxx.xxx 訂閱
请将你的工程文件及源代码打包寄给我(taxcjf@tom.com)好吗?谢谢。
yesoft
一般會員


發表:3
回覆:7
積分:2
註冊:2008-08-28

發送簡訊給我
#12 引用回覆 回覆 發表時間:2008-09-13 02:36:01 IP:219.129.xxx.xxx 訂閱
还是没解决问题呀
系統時間:2024-04-26 3:23:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!