WebBrowser 中链接问题 ?? 急急急(100分)

S

skyE.T.

Unregistered / Unconfirmed
GUEST, unregistred user!
我在WebBrowser中放入了一张自已做的网页,在其中有一个超链接要求打开delphi中的某
一form,如何实现???最好能够提供代码
 
在OnBeforeNavigate里写代码
根据URL来Show出相应的Form。
这么简单就不用贴代码了吧?
 
有一个叫THttpViewer的控件,可以不用IE的WebBrowser。里面可以很容易控制很多事件。
地址:找不着了,要的话可以给你试试看!
 
xianjun
这样我也知道,我要点击超链接的时候网页不变,而是跳出一个form窗口,你能不能给我看看主要代码
,如网页中的超链接的代码写什么,还有delphi中的主要代码,我可以实现但是每次要打开新的网页
因为如果超链接没有找到!那就出错了!你帮我试试看!先谢谢了!
 
你没见到OnBeforeNavigate有个Cancel参数吗?
Cancel:=True
就不会跳转了。
超链接你可以自己定的,你只要判断URL里包括有你的特殊字符串,就显示那个FORM
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
if Pos('SHOW_FORM', UpperCase(URL)) > 0 then
begin
Cancel := True;
MyForm.Show;
end;
end;

 
你能不能给我一个做好的例子!发到我的信箱xugangjun@163.com
我的QQ20877305,你加我好吗???
可用起来还是有点问题!
 
名位朋友帮帮忙了!上面的问题还是没有解决!
 
属于多页面问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1331499
 
我要的不是浏览器,
我在WebBrowser中放入了一张自已做的网页,在其中有一个超链接要求打开delphi中的某
一form,如何实现???但是网页要求不变,(也就是说一张网页中有很多超链接,每个
超链接打个不同的form,网页不变)最好能够提供代码
 
那位朋友帮帮忙!本人急用!
 
你把你的程序改成ActiveForm不就行了
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('c:/testLink.htm');
end;

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if(Pos('FORM2',UpperCase(URL))<>0) then
begin
Form2:=TForm2.Create(Self);
Form2.ShowModal;
Form2.Free;
end;
end;

end.

TestLink.htm内容如下:
<html>
<head>
<title>
</title>
</head>
<body>
<p><a href="Form2">这是测试要链接的Form</a></p>
</body>
</html>
 
以上我测试通过
 
谢谢各位!
 
100现在分掉了
WebExplorer 50分
xianjun 50分
 
帮你解决了一个问题也不给点分呀???:)
你后面的问题你已经解决?我这里没有通过
 
多人接受答案了。
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('c:/testLink.htm');
end;

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
if(Pos('FORM2',UpperCase(URL))<>0) then
begin
Form2:=TForm2.Create(Self);
Form2.ShowModal;
Form2.Free;
cancel:=true;
end;

end;

end.
这样就行了!多谢各位!
 
顶部