• delphi WebBrowser获取iframe页面内容及操作


    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;

  • 相关阅读:
    redis 资料
    php 安装redis php扩展
    Unity生命周期
    疫情下的大学生人格发展研究
    对联一句——百花深处
    Unity实现byte[]合成图像
    Unity实现精灵资源动态加载
    数据结构与算法初步
    Unity中激活子物体
    C#实现自定义列表
  • 原文地址:https://www.cnblogs.com/honeynm/p/3994242.html
Copyright © 2020-2023  润新知