试试用api打开网页uses ShellAPI; procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); var s:string; begin s := URL; ShellExecute(Handle,'open',PChar(s),nil,nil,1); Cancel := True; end;
要在我的WebBrowser1中点击,不是直接打开!
uses MSHTML;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://news.baidu.com/'); end;procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var Doc: IHTMLDocument3; HrefList: IHTMLElementCollection; I: Integer; begin Doc := WebBrowser1.Document as IHTMLDocument3; HrefList := Doc.getElementsByTagName('a'); for I := 0 to HrefList.length - 1 do begin with HrefList.item(I, I) as IHTMLAnchorElement do begin target := '_self'; end; end; end;
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
s:string;
begin
s := URL;
ShellExecute(Handle,'open',PChar(s),nil,nil,1);
Cancel := True;
end;
uses MSHTML;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://news.baidu.com/');
end;procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
Doc: IHTMLDocument3;
HrefList: IHTMLElementCollection;
I: Integer;
begin
Doc := WebBrowser1.Document as IHTMLDocument3;
HrefList := Doc.getElementsByTagName('a');
for I := 0 to HrefList.length - 1 do
begin
with HrefList.item(I, I) as IHTMLAnchorElement do
begin
target := '_self';
end;
end;
end;
自己解决,发上来给大家看看
unit adwords;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, ShellAPI, SHDocVw, ExtCtrls;type
TFoucsOn = class(TForm)
mainpage: TWebBrowser;
Selp: TTimer;
procedure FormCreate(Sender: TObject);
procedure SelpTimer(Sender: TObject);
procedure mainpageNewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
procedure mainpageStatusTextChange(ASender: TObject;
const Text: WideString);
private
{ Private declarations }
public
{ Public declarations }
end;var
FoucsOn: TFoucsOn;
St: Bool;implementation{$R *.dfm}procedure TFoucsOn.FormCreate(Sender: TObject);
var
WDL: Integer;
begin
WDL := GetWindowLong(handle, GWL_EXSTYLE);
SetWindowLong(handle, GWL_EXSTYLE, WDL or WS_EX_APPWINDOW);
mainpage.Navigate('http://news.baidu.com/');
end;procedure TFoucsOn.mainpageNewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
St := True;
Cancel := True;
end;procedure TFoucsOn.mainpageStatusTextChange(ASender: TObject;
const Text: WideString);
begin
if St then
begin
if Text<>'' then
begin
ShellExecute(Handle,'open',PChar(Text),nil,nil,1);
St := False;
end;
end;
end;procedure TFoucsOn.SelpTimer(Sender: TObject);
begin
if self.Visible = False then
begin
self.Visible := True;
Selp.Destroy;
end;
end;end.
下面这个才是健康的,
unit adwords;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, ShellAPI, SHDocVw, ExtCtrls;type
TFoucsOn = class(TForm)
mainpage: TWebBrowser;
Selp: TTimer;
procedure FormCreate(Sender: TObject);
procedure SelpTimer(Sender: TObject);
procedure mainpageNewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
procedure mainpageStatusTextChange(ASender: TObject;
const Text: WideString);
private
{ Private declarations }
public
{ Public declarations }
end;var
FoucsOn: TFoucsOn;
St: Bool;
UrlSt:String;implementation{$R *.dfm}
procedure TFoucsOn.FormCreate(Sender: TObject);
var
WDL: Integer;
begin
WDL := GetWindowLong(handle, GWL_EXSTYLE);
SetWindowLong(handle, GWL_EXSTYLE, WDL or WS_EX_APPWINDOW);
mainpage.Navigate('http://news.baidu.com/');
end;procedure TFoucsOn.mainpageNewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
St := True;
Cancel := True;
ShellExecute(Handle,'open',PChar(UrlSt),nil,nil,1);
St := False;
end;procedure TFoucsOn.mainpageStatusTextChange(ASender: TObject;
const Text: WideString);
begin
if Text<>'' then
begin
UrlSt:=String(Text);
end;
end;procedure TFoucsOn.SelpTimer(Sender: TObject);
begin
if self.Visible = False then
begin
self.Visible := True;
Selp.Destroy;
end;
end;end.