如何读出TWebbrowser中的INPUT框里的内容?(80分)

  • 主题发起人 主题发起人 dingnan
  • 开始时间 开始时间
D

dingnan

Unregistered / Unconfirmed
GUEST, unregistred user!
通过innertext属性可以将内容写入INPUT框中,但是
怎样知道TWebBrowser里的网页上有多少个INPUT?

而且我在MSDN中查得INNERTEXT属性是具有读/写的,但是我在程序里却
读不出来。
请问各位大虾如何解决!!!
 
innertext,和outertext属性各为什么,我试了,有时有内容,有时为'',请帮忙说说
 
我这里有个从ie 网页中的 input 里读出数据的,写入内容反过来也应该一样。你参考一下

procedure TForm1.PutData;
var
ShellWindow: IShellWindows;
nCount: integer;
spDisp: IDispatch;
i,j,X: integer;
vi: OleVariant;
IE1: IWebBrowser2;
IDoc1: IHTMLDocument2;
iELC : IHTMLElementCollection ;
S,S2 : string;
HtmlInputEle : IHTMLInputElement;
HtmlSelEle : IHTMLSelectElement;
begin
ShellWindow := CoShellWindows.Create;
nCount := ShellWindow.Count;

for i := 0 to nCount - 1 do
begin
vi := i;
spDisp := ShellWindow.Item(vi);
if spDisp = nil then continue;
spDisp.QueryInterface( iWebBrowser2, IE1 );
if IE1 <> nil then
begin
IE1.Document.QueryInterface(IHTMLDocument2,iDoc1);
if iDoc1 <> nil then
begin

ielc:=idoc1.Get_all;

for j:=0 to ielc.length-1 do
begin
Application.ProcessMessages;
spDisp := ielc.item(J, 0);
if SUCCEEDED(spDisp.QueryInterface(IHTMLInputElement ,HtmlInputEle))then
with HtmlInputEle do
begin
S2:=Type_;
S2:=UpperCase(S2);
//我把所有的input都填上 try , checkbox 都打勾
if (StrComp(PChar(S2),'TEXT')=0) or (StrComp(PChar(S2),'PASSWORD')=0) then
value :='try' //S:=S+#9+Value
else if StrComp(PChar(S2),'CHECKBOX')=0 then
begin
checked := True;
end;
end;
if SUCCEEDED(spDisp.QueryInterface(IHTMLselectelement ,HtmlSelEle))then
with HtmlSelEle, Memo1.Lines do
begin
S:=S+#9+IntToStr(selectedIndex+1); //这个是获取数据了
end;
end; //END FOR
Memo2.Lines.Add(S);
exit;
end;
end;
end;
end;


改的比较匆忙,但是我运行过,没问题,给分
 
多人接受答案了。
 
您好!
用您的方法填写网页效果却实不错,可是对于demo框的填写该如何做?
请指教,谢谢!
 
如何提交表单?
 
后退
顶部