delphi 网页输入问题!
delphi网页输入问题!<inputid="1"type="text">d.htm的代码!WebBrowser1打开d.htm用delphiedit1.text输入到d...
delphi 网页输入问题! <input id="1" type="text"> d.htm的代码! WebBrowser1 打开d.htm 用delphi edit1.text 输入到 d.htm 的text上去!
展开
4个回答
展开全部
设置一个全局变量
j: integer;
需要二个事件,假如点击按钮后开始执行,首先是按钮点击事件,在begin和end;中间输入代码:
webbrowser1.Navigate('d.htm');//就是告诉浏览器打开这个网页
j:= 0;
第二个事件:WebBrowser1ProgressChange
设置变量:
var
o:olevariant;
begin
if ( Progress = 0 ) and ( ProgressMax = 0 ) then //判断网页已经全部打开
j:= j+1; //J的作用是计数,防止网页已经打开后再次输入数据,这样程序会出错挂掉
if j=1 then
begin
o:=webbrowser1.oleobject.document.all.item('1',0); //给ID为1的输入框赋值
o.value:=edit1.text; //数值
j:= j+1; //这样J就不为1了,网页更新后不会再次输入数据,否则在没有ID为1的网页上输入数据程序会出错
end;
end;
j: integer;
需要二个事件,假如点击按钮后开始执行,首先是按钮点击事件,在begin和end;中间输入代码:
webbrowser1.Navigate('d.htm');//就是告诉浏览器打开这个网页
j:= 0;
第二个事件:WebBrowser1ProgressChange
设置变量:
var
o:olevariant;
begin
if ( Progress = 0 ) and ( ProgressMax = 0 ) then //判断网页已经全部打开
j:= j+1; //J的作用是计数,防止网页已经打开后再次输入数据,这样程序会出错挂掉
if j=1 then
begin
o:=webbrowser1.oleobject.document.all.item('1',0); //给ID为1的输入框赋值
o.value:=edit1.text; //数值
j:= j+1; //这样J就不为1了,网页更新后不会再次输入数据,否则在没有ID为1的网页上输入数据程序会出错
end;
end;
展开全部
procedure FillIEForm;
procedure DoWithHtmlElement(aElementCollection:IHTMLElementCollection);
var
k:integer;
CanSubmit: Boolean;
vk:oleVariant;
Dispatch: IDispatch;
HTMLInputElement:IHTMLInputElement;
// HTMLOptionButtonElement:IHTMLOptionButtonElement;
begin
// showmessage('');
for k:=0 to aElementCollection.length -1 do
begin
Vk:=k;
Application.ProcessMessages;
Dispatch:=aElementCollection.item(Vk,0);
// showmessage('');
if Succeeded(Dispatch.QueryInterface(IHTMLInputElement,HTMLInputElement)) then
begin
// showmessage(HTMLInputElement.name);
With HTMLInputElement do//单行文本
begin
if (UpperCase(Type_)='TEXT') or (UpperCase(Type_)='PASSWORD') then
begin
value:=HTMLInputElement.name;
if Name='1' then Value:=Edit1.Text;
end
else
;
end;
end;
var
HTMLDocument:IHTMLDocument2;
ElementCollection:IHTMLElementCollection;
begin
HTMLDocument:=IHTMLDocument2(sd_bbswater.ewt.Document);
if HTMLDocument<>nil then
begin
if HTMLDocument.frames.length =0 then//无框架
begin
ElementCollection:=HTMLDocument.Get_All;
DoWithHtmlElement(ElementCollection);
end;
end;
end;
procedure DoWithHtmlElement(aElementCollection:IHTMLElementCollection);
var
k:integer;
CanSubmit: Boolean;
vk:oleVariant;
Dispatch: IDispatch;
HTMLInputElement:IHTMLInputElement;
// HTMLOptionButtonElement:IHTMLOptionButtonElement;
begin
// showmessage('');
for k:=0 to aElementCollection.length -1 do
begin
Vk:=k;
Application.ProcessMessages;
Dispatch:=aElementCollection.item(Vk,0);
// showmessage('');
if Succeeded(Dispatch.QueryInterface(IHTMLInputElement,HTMLInputElement)) then
begin
// showmessage(HTMLInputElement.name);
With HTMLInputElement do//单行文本
begin
if (UpperCase(Type_)='TEXT') or (UpperCase(Type_)='PASSWORD') then
begin
value:=HTMLInputElement.name;
if Name='1' then Value:=Edit1.Text;
end
else
;
end;
end;
var
HTMLDocument:IHTMLDocument2;
ElementCollection:IHTMLElementCollection;
begin
HTMLDocument:=IHTMLDocument2(sd_bbswater.ewt.Document);
if HTMLDocument<>nil then
begin
if HTMLDocument.frames.length =0 then//无框架
begin
ElementCollection:=HTMLDocument.Get_All;
DoWithHtmlElement(ElementCollection);
end;
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
网页中编一个js吧.
然后用webbrowser来执行js代码就可以了.
然后用webbrowser来执行js代码就可以了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能否详细说一下???
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询