webbrowser控件怎样修改checkbox(100分)

  • 主题发起人 主题发起人 limous
  • 开始时间 开始时间
L

limous

Unregistered / Unconfirmed
GUEST, unregistred user!
程序用webbrowser登陆了一个网页,想用程序实现把网页上面一个checkbox自动打上勾,要怎样才能实现?
 
以下例子成功登录本BBS后打勾,不成功或登录到其它网站不打勾。

uses ...,MsHtml;

procedure TForm1.Button3Click(Sender: TObject);
begin
webbrowser1.Navigate ('http://www.delphibbs.com');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
webbrowser1.Navigate ('http://www.china.com');
end;

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
s,MyUrl:string;
begin
MyUrl:=uppercase('http://www.delphibbs.com');
s:=uppercase((webbrowser1.Document as IHTMLDocument2).url);
s:=copy(s,1,length(MyUrl));
checkbox1.Checked:=(s=MyUrl);
end;

 
谢谢楼上的,但我指的是在网页上面的选择框,而不是程序form上的checkbox,
打勾就是在网页上打。呵呵。
 
假如你知道复选框的 Name,如:
<INPUT TYPE="checkbox" NAME="ChkName" >AAAAAAAAAAA</input>

则可以如下实现:
procedure TForm1.Button4Click(Sender: TObject);
var
doc :IHTMLDocument2;
chk:ihtmlinputelement;
begin
doc:=(webbrowser1.Document as IHTMLDocument2);
chk:=(doc.all.item('ChkName',0) as ihtmlinputelement);
// ^<<<<<<<
chk.checked:=true;
end;
 
多谢了,分数已给你拉。但如果在含有frams的网页(比如第二个fram)又怎么办呢?能给出一段代码吗?
 
procedure TForm1.Button2Click(Sender: TObject);
var
doc:IHTMLDocument2;
win:IHtmlwindow2;
s,chk:Olevariant;
// ^ 注意这两个变量的声明
begin
doc:=(webbrowser1.Document as IHTMLDocument2);
win:=doc.parentWindow ;
s:='F1';
// ^ frame的name
chk:=win.Get_frames.item(s).document.all.item('ChkName',0);
chk.checked:=true;
end;
 
后退
顶部