原文:
c# webbrowser開發參考資料
那麼找出該按鈕並為之新增event handler的**如下:
htmldocument htmldoc = webbrowser.document;
htmlelement btnelement = htmldoc.all["btnclose"];
if (btnelement != null)
其中htmlbtnclose_click是按下web按鈕時的event handler。
很簡單吧?那麼稍稍高階一點的——我們都知道乙個html元素可能有很多各種各樣的事件,而htmlelement這個類只給出最常用、共通的幾個。那麼,
如何響應其他事件呢?這也很簡單,只需要呼叫htmlelement的attacheventhandler就可以了:
btnelement.attacheventhandler("onclick", new eventhandler(htmlbtnclose_click));
//這一句等價於上面的btnelement.click += new htmlelementeventhandler(htmlbtnclose_click);
對於其他事件,把"onclick"換成該事件的名字就可以了。例如:
formelement.attacheventhandler("onsubmit", new eventhandler(htmlform_submit));
study case 2:表單(form)的自動填寫和提交
要使我們的webbrowser具有自動填表、甚至自動提交的功能,並不困難。
假設有乙個最簡單的登入頁面,輸入使用者名稱密碼,點「登入」按鈕即可登入。已知使用者名稱輸入框的id(或name,下同)是username,密碼輸入框的id
是password,「登入」按鈕的id是submitbutton,那麼我們只需要在webbrowser的documentcompleted事件中使用下面的**即可:
htmlelement btnsubmit = webbrowser.document.all["submitbutton"];
htmlelement tbuserid = webbrowser.document.all["username"];
htmlelement tbpasswd = webbrowser.document.all["password"];
if (tbuserid == null || tbpasswd == null || btnsubmit == null)
return;
tbuserid.setattribute("value", "smalldust");
tbpasswd.setattribute("value", "12345678");
btnsubmit.invokemember("click");
這裡我們用setattribute來設定文字框的「value」屬性,用invokemember來呼叫了按鈕的「click」方法。因為不同的html元素,其擁有的屬性和方
法也不盡相同,所以.net 2.0提供了統一的htmlelement來概括各種html元素的同時,提供了這兩個方法以呼叫元素特有的功能。關於各種html元素的
屬性和方法一覽,可以查閱msdn的dhtml reference。
c webBrowser 獲取Ajax資訊
c 中 webbrowser控制項對ajax的執行,沒有任何的響應,難於判斷ajax是否已經執行完畢,我gg了一下午,找到乙個方法,介紹一下 假如在頁面中有個 是通過ajax來改變值,當webbrowser1.statustext 完成 後,獲取一下這個div htmlelement target ...
c webBrowser 獲取Ajax資訊
c 中 webbrowser控制項對ajax的執行,沒有任何的響應,難於判斷ajax是否已經執行完畢,我gg了一下午,找到乙個方法,介紹一下 假如在頁面中有個 是通過ajax來改變值,當webbrowser1.statustext 完成 後,獲取一下這個div htmlelement target ...
c webBrowser 獲取Ajax資訊
原文 c webbrowser 獲取ajax資訊 c 中 webbrowser控制項對ajax的執行,沒有任何的響應,難於判斷ajax是否已經執行完畢,我gg了一下午,找到乙個方法,介紹一下 假如在頁面中有個 是通過ajax來改變值,當webbrowser1.statustext 完成 後,獲取一下...