WinForm中WebBrowser的使用

最近因爲工做須要,研究了下Winform的WebBrowser控件,在這裏給你們分享下。javascript

 

       一、WebBrowser導航html

            WebBrowser在進行導航的時候須要用到Navigate(string urlString)方法java

       二、執行已有的JavaScript函數jquery

            使用WebBrowser.Document.InovkeScript(string scriptName)json

       三、執行自定義的Javascript函數ide

            這裏須要先將自定義的Javascript寫入到WebBrowser.Document.Body中,而後使用InvokScript()方法執行函數。函數

            這裏須要引用Microsoft.mshtml.dllgoogle

            例子:url

public static class WebBrowserHelper
    {
        /// <summary>
        /// 建立一個Javascript標籤並附加到Document中 如<script type="text/javascript">function(){} </script>
        /// </summary>
        /// <param name="browser"></param>
        /// <param name="script"></param>
        /// <returns></returns>
        public static void CreateJSElement(WebBrowser browser, string script)
        {
            var tag = browser.Document.CreateElement("script");

            var scriptElement = tag.DomElement as IHTMLScriptElement;

            scriptElement.type = "text/javascript";//設定爲Javascript
            scriptElement.text = script;//設置內容

            browser.Document.Body.AppendChild(tag);
        }
}
View Code

 

 

          這裏咱們用一個方法 將自定義的JS Append到Document中,調用剛剛的方法spa

 

public void RunJS(WebBrowser browser)
{
       string scriptStr="function sayHello(){ alert(\"Hello\");}";//咱們要執行的自定義函數
       WebBrowserHelper.CreateJSElement(browser,scriptStr);//將這段函數附加到Document中

      browser.Doucment.InvokeScript("sayHello");//執行sayHello()函數

}
View Code

 

 

 

 

       四、獲取並處理Javascript函數的返回值

       InvokeScript(string scriptName)方法會返回一個Object類型的返回值

       若是這個值的類型是Javascript中的 String、Number類型,能夠直接調用Convert.ToString(),Convert.ToInt32() 進行轉換並取值使用

       若是這個值得類型是Javascript中的 Object、Array 類型,則返回一個System.__ComObject類型的對象,目前爲止還沒找到如何取值的辦法,所以這裏我選擇提供一個自定義函數,將咱們要的返回值序列化爲JSON字符串再返回。

       因爲WebBrowser不支持HTML5標準,沒法使用JSON.stringify()函數,這裏咱們須要引用其餘序列化JS對象的插件。 

       這裏推薦 Jquery-Json     在這裏下載

       使用方式很簡單 $.toJSON(object);

 

 

       整體上遇到並解決的問題就是這些了 具體的一些代碼 能夠  下載DEMO

 

轉載地址:http://www.cnblogs.com/ShadowLoki/p/3408548.html

相關文章
相關標籤/搜索