IHTMLDOCUMENT2 怎样才能使用

2025-04-28 20:16:01
推荐回答(1个)
回答1:

(1)InnerText:开始标记和结束标记之间的文本;

(2)InnerHTML:开始标记和结束标记之间的文本和HTML;

(3)OuterText:对象的文本;

(4)OuterHTML:对象的文本和HTML.

注意:使用前加入单元mshtml

演示表单提交

procedure TForm1.Button1Click(Sender: TObject);
var
Doc:IHTMLDocument2;
input:OleVariant;
userinputelement,pwdinputelement:ihtmlinputelement;
begin
doc:=webbrowser1.document as ihtmldocument2;
userinputelement:=(doc.all.item('user'(也就是网页中用户名控件的名字),0) as ihtmlinputelement);
userinputelement.value:=edit1.text;(也就是你要向网页输入的东西)
pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
pwdinputelement.value:=edit2.text;
input:=doc.all.item('submit',0);
input.click;
end;

当提交数据按钮没有NAME属性时,采用如下方法:

procedure TForm1.Button1Click(Sender: TObject);
var
Doc:IHTMLDocument2;
form:ithmlformelement;
userinputelement,pwdinputelement:ihtmlinputelement;
begin
doc:=webbrowser1.document as ihtmldocument2;
userinputelement:=(doc.all.item('user'(也就是网页中用户名控件的名字),0) as ihtmlinputelement);
userinputelement.value:=edit1.text;(也就是你要向网页输入的东西)
pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
pwdinputelement:=edit2.text;
form:=(doc.all.item('login_form',0) as ihtmlformelement):
form.submit;
end;

登录"按钮一般都是网页中默认的回车按钮,所以可以用上面代码来代替前面的点击按钮

读取某网页内容

在创建窗体的时候打开一网页
webbrowser1.navigate('http://www.baidu.com')

procedure TForm1.Button1Click(Sender: TObject);

begin

memo1.lines.add(ihtmldocument2(webbrowser1.document).body.outerhtml);

end;
这样一来memo1中显示www.baidu.com的html

利用webbrowser1控件浏览某txt中文件的内容,并以html形式来显示出来

在webbrowser1的控件中的ondocumentcomplete事件加入如下代码

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

var

webdoc:htmldocument ;

webbody:htmlbody;

begin

webdoc:=webbrowser1.document as htmldocument;

webbody:=webdoc.body as htmlbody;

webbody.insertAdjacentHTML('beforeend','

');

webbody.insertAdjacentHTML('beforeend','Password: ');

webbody.insertAdjacentHTML('beforeend','');

webbody.insertAdjacentHTML('beforeend','');

webbody.insertAdjacentHTML('beforeend',' ');

webbody.insertAdjacentHTML('beforeend','
');

end;