zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    flask_第一个程序
    Web框架_MVC vs MVT
    python_使用qrcode生成二维码
    HDU 4641
    SPOJ NSUBSTR
    SPOJ LCS2 多个串的最长公共子串
    SPOJ LCS 后缀自动机找最大公共子串
    POJ 1509 循环同构的最小表示法
    HDU 4821 字符串hash
    SPOJ GSS1 静态区间求解最大子段和
  • 原文地址:https://www.cnblogs.com/honeynm/p/3994242.html
Copyright © 2011-2022 走看看