zoukankan      html  css  js  c++  java
  • delphi webbrowser 常用方法示例

    delphi webbrowser 常用方法示例

     
    复制代码
    var   Form   :     IHTMLFormElement     ;
            D:IHTMLDocument2     ;
    begin
        with   WebBrowser1   do   begin
              D   :=   Document   as   IHTMLDocument2;
              Form   :=   D.Forms.item( 'form1 ',0)   as   IHTMLFormElement;   //form1为表单名
              //title为表单中的文本框
            (form.item( 'title ',0)   as   IHTMLElement).setAttribute( 'value ',s_title,0);  
            (form.item( 'content ',0)   as   IHTMLElement).setAttribute( 'value ',edit1.text,0);
            (form.item( 'add ',0)   as   IHTMLElement).click;//add为按钮名称
        end;
    复制代码

    在delphi的WebBrowser中获取和设置Input表单值

    复制代码
    var
        i:Integer;
        myole:oleVariant;
    begin
        myole := wb1.Document;
        for i := 0 to myole.all.length - 1 do
        begin
            if myole.all.item(i).tagName = 'INPUT' then
            begin
    
                mmo1.Lines.Add(myole.all.item(i).name);
    
                mmo1.Lines.Add(myole.all.item(i).value);
            end;
        end;
    
    end;
    复制代码
    复制代码
    WebBrowser1.GoHome; //到浏览器默认主页
    WebBrowser1.Refresh; //刷新
    WebBrowser1.GoBack; //后退
    WebBrowser1.GoForward; //前进
    WebBrowser1.Navigate('...'); //打开指定页面
    WebBrowser1.Navigate('about:blank'); //打开空页面
    --------------------------------------------------------------------------------
    //打开空页面, 并写入...
    
    WebBrowser1.Navigate('about:<head><title>标题></title><body>页面内容</body>');
    --------------------------------------------------------------------------------
    //读取网页脚本中的变量:
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    s: string;
    i: Integer;
    begin
    s := WebBrowser1.OleObject.document.Script.str;
    i := WebBrowser1.OleObject.document.Script.num;
    ShowMessage(s); //Hello
    ShowMessage(IntToStr(i)); //99
    
    //也可以这样读:
    s := WebBrowser1.OleObject.document.parentWindow.str;
    i := WebBrowser1.OleObject.document.parentWindow.num;
    ShowMessage(s); //Hello
    ShowMessage(IntToStr(i)); //99
    end;
    假如网页中有这样的语句:
    <script>
    var
    str = "Hello";
    i = 99;
    </script>
    
    --------------------------------------------------------------------------------
    
    //调用网页脚本中的函数:
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    WebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js
    
    //如需指定脚本语言, 需要:
    WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Js
    end;
    假如有这样的脚本:
    <script>
    function MB(){
    alert('HTML-Js');
    }
    </script>
    
    --------------------------------------------------------------------------------
    
    //判断网页及内部框架网页是否全部下载完毕
    
    procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
    begin
    if WebBrowser1.Application = pDisp then
    begin
    Text := '网页下载完毕!';
    end;
    end;
    
    --------------------------------------------------------------------------------
    
    //改变背景色或背景图片:
    WebBrowser1.OleObject.document.body.bgcolor := '#FF0000';
    WebBrowser1.OleObject.document.body.background := '...图片地址';
    --------------------------------------------------------------------------------
    //操作有 ID 标签的对象:
    var
    s: string;
    begin
    s := WebBrowser1.OleObject.document.getElementByID('span1').innerText;
    ShowMessage(s); //这是 span1 标签中的内容
    
    //或者:
    s := WebBrowser1.OleObject.document.parentWindow.span1.innerText;
    ShowMessage(s); //这是 span1 标签中的内容
    
    //隐藏它:
    WebBrowser1.OleObject.document.parentWindow.span1.style.display := 'none';
    end;
    假如网页中有这样的内容:
    <span id=span1>这是 span1 标签中的内容</span>
    
    
    --------------------------------------------------------------------------------
    
    //获取网页源代码
    var
    s: string;
    begin
    s := WebBrowser1.OleObject.document.body.innerHTML; //body内的所有代码
    s := WebBrowser1.OleObject.document.body.outerHTML; //body内的所有代码, 包含body标签
    s := WebBrowser1.OleObject.document.documentElement.innerHTML; //html内的所有代码
    end;
    --------------------------------------------------------------------------------
    //WebBrowser 中的右键菜单
    
    //先要添加ApplicationEvents1,指定其Message事件
    
    //屏蔽右键菜单
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
    begin
    with Msg do
    begin
    if not IsChild(WebBrowser1.Handle, hWnd) then Exit;
    Handled := (message = WM_RBUTTONDOWN) or (message = WM_RBUTTONUP) or (message = WM_CONTEXTMENU);
    end;
    end;
    
    //替换右键菜单
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
    var mPoint: TPoint;
    begin
    if IsChild(WebBrowser1.Handle, Msg.Hwnd) and
    ((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) then
    begin
    GetCursorPos(mPoint); //得到光标位置
    PopupMenu1.Popup(mPoint.X, mPoint.Y); //弹出popupmenu1的菜单
    Handled:=True;
    end;
    end;
    --------------------------------------------------------------------------------
    //新页面写入
    begin
    WebBrowser1.Navigate('about:blank');
    WebBrowser1.OleObject.Document.Writeln('ok');
    end; 
    复制代码

    自动登录

    按 Ctrl+C 复制代码
    按 Ctrl+C 复制代码
  • 相关阅读:
    POJ-1189 钉子和小球(动态规划)
    POJ-1191-棋盘分割(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
  • 原文地址:https://www.cnblogs.com/yjhb/p/12240316.html
Copyright © 2011-2022 走看看