WPF使用Webbrowser操做網頁的主要代碼

1,引用mshtml.dlljavascript

using mshtml;

2,獲取元素屬性值html

IHTMLDocument2 doc2=(IHTMLDocument)webbrowser1.Document; IHTMLElement img=(IHTMLElement)doc2.all.item("regimg",0); string imgUrl=(string)img.getAttribute("src");

3,取表單控件

java

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,填寫表單控件web

loginName.setAttribute("value",tbLoginName.Text);
loginPW.setAttribute("value",tbLoginPassWord.Password);
loginYZM.setAttribute("value",tbYZ.Text);

5,點擊按鈕windows

loginBT.click();

6,執行js腳本this

方法1:spa

IHTMLwindow win=(IHTMLWindow2)doc2.parentWindows;
win.execScript("alert('hello!')","javascript");

方法2:code

webbrowser1.InvokeScript("eval","alert('hello!')");

7,屏蔽alert、confirm等,經過重定義實現orm

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消息htm

[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);
}
相關文章
相關標籤/搜索