求救啊!WebBrowser 问题(50分)

  • 主题发起人 主题发起人 tl78
  • 开始时间 开始时间
T

tl78

Unregistered / Unconfirmed
GUEST, unregistred user!
我用WebBrowser控制网页中的对象,
有两种写法:

1:
Uses MSHTML //IHTMLDocument2,IHTMLInputElement,IHTMLFormElement等在其中定义,必须加上该单元!

var
Doc:IHTMLDocument2;
Input:IHTMLInputElement;
Form:IHTMLFormElement;
begin
Doc:=Webbrowser1.Document as IHTMLDocument2;
Input:= Doc.all.item('name',0) as IHTMLInputElement;
//或者Input:= IHTMLDocument2(Webbrowser1.Document).all.item('name',0) as IHTMLInputElement;
Input.value:='Test';
Input:= Doc.all.item('pass',0) as IHTMLInputElement;
//或者Input:= IHTMLDocument2(Webbrowser1.Document).all.item('name',0) as IHTMLInputElement;
Input.value:='123456';
Form:= Doc.all.item('alogon',0) as IHTMLFormElement;
Form.submit;
end;

2:
With WebBrowser1.OleObject.document do
begin
all.item('name').value:='Test';
all.item('pass').value:='123456;
forms.item('alogon').submit;
end;



在没有Frame的情况下没问题!

可拿到有Frame的页面里就不行了,我应该怎么改上面的那些代码呢?

我要控制的对象在Frame:<frame src="output.htm" name="send">里。

也就是说要控制的对象在“output.htm”里。

我该怎么把Frame加到上面的代码里呢?

救救我呀!


 
没人知道吗?
还是我没说明白
 
不会没人知道吧?

[:(][:(][:(][:(][:(]
 
我只知道有了frame后,你要指明你的操作是对哪个frame,具体怎么做没事国。
这是我从http://kingron.myetang.com的delphi技巧急里找到的,没事过,just try
--------------
1、如何在程序中取得多frame的每个Frame中的内容 100分
单个Frame的页面可用
wb_DataInfo.OleObject.document.documentelement.innerhtml;
wb_DataInfo.OleObject.document.documentelement.innerText;
WebBrowser1.oleobject.document.links.item(i).href
等取得内容或联接,但如果是多Frame,则只能得到主页面的内容,如何取得Frames的数量及每个Frame的内容?
不知你是取TEXT还是HTML不过没关系全可以实现。
当页面下载到浏览器中以后,
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,j:integer;
begin
memo1.Clear;
i:=webbrowser1.oleobject.document.documentelement.document.frames.length;//得到frame的数量。
memo1.Lines.Add('have Frames: '+inttostr(i));
for j:=0 to i-1 do
begin
memo1.lines.add('');
memo1.Lines.Add('Frame '+inttostr(j+1)+' from here');
memo1.Lines.Add(webbrowser1.oleobject.document.
documentelement.document.frames.item(j).document.
documentelement.innerHtml);//取得每个Frame中的HTML内容
end;
end;
 
其实我的目的是要给frame里的一个text赋值
现在我可以控制frame里的form提交,代码如下:
webbrowser1.oleobject.document.frames.item('frame名称').Document.forms.item('form名称').submit;

可给text赋值得代码却通不过,不知该如何改写?
代码如下:
webbrowser1.OleObject.document.frames.item(''frame名称').Document.all.item('text名称').value:='Test';

该代码编译可通过,运行时通不过,该如何改写呢?

 
后退
顶部