怎样向网页中的输入框发送数据(100分)

  • 主题发起人 主题发起人 jhlz1968
  • 开始时间 开始时间
J

jhlz1968

Unregistered / Unconfirmed
GUEST, unregistred user!
我用IDHttp组件,请看下边网页:

http://fundf10.eastmoney.com/jjjz_090001.html

里边的“基金代码”、“起始日”和“终止日”需要输入数据。三项数据输入完毕后,要单击“查询”按钮,用来得到下边的历史净值。

怎样在程序中向这三个框内发送数据?以得到历史净值。
 
这个,从他的网站结构看:似乎可能有偷懒法
http://fundf10.eastmoney.com/jjjz_090001_2008-2-01_2008-2-29.html
^^^^^^ ^^^^^^^^^ ^^^^^^^^^
090001这个是基金代码
2008-2-01是起始日
2008-2-29是终止日,直接修改html访问可行....
如果要直接发送数据过去,可能要用WEBBROWER
 
楼上的方法比较容易实现,下面的方法更通用:
// function to execute a script function
function ExecuteScript(WebBrowser: TWebBrowser; script: string; language: string = 'javascript'): Boolean;
var
doc: IHTMLDocument2;
win: IHTMLWindow2;
Olelanguage: OleVariant;
begin
Result := False;
if WebBrowser <> nil then
begin
try
doc := IHTMLDocument2(WebBrowser.Document);
win := doc.parentWindow;
if win <> nil then
begin
try
Olelanguage := language;
win.ExecScript(script, Olelanguage);
Result := True;
finally
win := nil;
end;
end;
finally
doc := nil;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://fundf10.eastmoney.com/jjjz_090001.html');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
O: OleVariant;
begin
O := WebBrowser1.OleObject.Document.all.item('k', 0);
O.value := '260104';
O := WebBrowser1.OleObject.Document.all.item('a', 0);
O.value := '2008-1-1';
O := WebBrowser1.OleObject.Document.all.item('b', 0);
O.value := '2008-1-31';
ExecuteScript(WebBrowser1,'jisuan04();');
end;
 
uses MSHTML;写上这句
 
TO:lanyaoshi:

我用的是D6。你的代码不错,已经能实现我的要求,但在运行时会出现以下错误。
单击button1和button2,会出现以下错误:
“出现了运行时间错误,是否要进行调试?
行36 错误'listArticle[...]'为空域不是对象 ”

另外,用IDHttp能实现吗?(我的窗体用的是IDHttp)
 
我用的是 TWebBrowser,没有用IDHttp。我用D7,调试过的,没有出现你说的问题。
 
用IDHTTP能实现上述要求吗?
 
如果用IDHTTP,请参照二楼fanboynet的方法
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部