uses MSHTML, ActiveX;
function GetFrame(FrameNo:Integer):IWebbrowser2; var OleContainer:IOleContainer; enum:IEnumUnknown; unk:IUnknown; Fetched:PLongint; begin while Form1.wb1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; if Assigned(Form1.wb1.document)then begin Fetched:= nil; OleContainer:= Form1.wb1.Document as IOleContainer; OleContainer.EnumObjects(OLECONTF_EMBEDDINGS,enum); Enum.Skip(FrameNo); Enum.Next(OLECONTF_EMBEDDINGS,Unk,Fetched); Result:=Unk as IWebbrowser2; end else Result:=nil; end;
procedure TForm1.btn3Click(Sender: TObject); var doc,frm: IHTMLDocument2; iw: IWebbrowser2; i: integer; begin doc:=wb1.Document as IHTMLDocument2; for i:=0 to doc.frames.length-1 do begin iw:=GetFrame(i); frm:=iw.Document as IHTMLDocument2; mmo1.Lines.Add( '==============Frame '+ IntToStr(i)+ '=================='); mmo1.Lines.Add(frm.body.outerHTML); end; end;
procedure TForm1.Button3Click(Sender: TObject); var doc: IHTMLDocument2; frm: IHTMLDocument3; iw: IWebbrowser2; i: integer; begin doc:=web1.Document as IHTMLDocument2; i:=0; iw:=GetFrame(i); frm:=iw.Document as IHTMLDocument3; frm.getElementById('switcher_plogin').click;
end;
|
请发表评论