zoukankan      html  css  js  c++  java
  • WPF使用Webbrowser操作网页的主要代码

    1,引用mshtml.dll
    
    using mshtml;
    2,获取元素属性值
    
    IHTMLDocument2 doc2=(IHTMLDocument)webbrowser1.Document;
    IHTMLElement img=(IHTMLElement)doc2.all.item("regimg",0);
    string imgUrl=(string)img.getAttribute("src");
    3,取表单控件
    
    
    IHTMLElement loginName=(IHTMLElement)doc2.all.item("loginname",0);
    IHTMLElement loginPW=(IHTMLElement)doc2.all.item("password",0);
    IHTMLElement loingYZM=(IHTMLElement)doc2.all.item("regcode",0);
    IHTMLElement loginBT=(IHTMLElement)doc2.all.item("formsubmit",0);
    4,填写表单控件
    
    loginName.setAttribute("value",tbLoginName.Text);
    loginPW.setAttribute("value",tbLoginPassWord.Password);
    loginYZM.setAttribute("value",tbYZ.Text);
    5,点击按钮
    
    loginBT.click();
    6,执行js脚本
    
    方法1:
    
    IHTMLwindow win=(IHTMLWindow2)doc2.parentWindows;
    win.execScript("alert('hello!')","javascript");
    方法2:
    
    webbrowser1.InvokeScript("eval","alert('hello!')");
    7,屏蔽alert、confirm等,通过重定义实现
    
    private voie webbrowser1_navigated(object sender,WebBroserNavigatedEventArgs e)
    {
        IHTMLWindow2 win=(IHTMLWindow2)webbrowser1.Document.Window.DomWindow;
        string s=@"window.alert=null; window.onerror=null;window.confirm=null; windows.open=null; window.showModalDialg=null;";
        win.execScript(s,"javascript");
    }
    8,接收js消息
    
    复制代码
    [ComVisible(true)]  //这句要加到类定义前,可与COM通信
    
    private void webbrowser1_Navigated(objec sender,WebBrowserNavigatedEventargs e)
    {
        IHTMLWindow2 win=(IHTMLWindow2)webbrowser1.Document.Window.DomWindow;
        //假设把alert消息传出来处理
        string s=@"function alert(str){window.external.procMessage(str);}";
        win.execScript(s,"javascript");
        webbrowser1.ObjectForScripting=this;  //指定脚本消息送到当前实例处理
    }
    
    //处理脚本消息的方法
    public void procMessage(string s)
    {
        MessageBox.Show("脚本消息:"+s);
    }
  • 相关阅读:
    JavaScript总结
    Python-模块
    在VMware软件下创建CentOs虚拟机
    python 日常一记 基础
    python request 基于unittest 请求deom
    python 日常已记 列表去重
    电话拨号器
    Axure RP使用攻略--入门级(二)线框图元件
    Axure RP使用攻略--入门级(一)
    ArcGIS Server-发布地理编码服务
  • 原文地址:https://www.cnblogs.com/romanticcrystal/p/8472706.html
Copyright © 2011-2022 走看看