1. 程式人生 > 實用技巧 >WinForm窗體程式中使用CefSharp獲取載入後的資源、擷取request引數、攔截response資料、注入jquery檔案和js程式碼(4)-注入jquery檔案和js程式碼

WinForm窗體程式中使用CefSharp獲取載入後的資源、擷取request引數、攔截response資料、注入jquery檔案和js程式碼(4)-注入jquery檔案和js程式碼

原始碼地址:原始碼csdn 或者底部qq問我要

六、注入jquery檔案和js程式碼

在介面button按鈕點選事件中

private void button1_Click(object sender, EventArgs e)
        {
            //注入本機bin\x86\debug下的檔案
            browser.ExecuteScriptAsync(File.ReadAllText(@"JavaScript2.js"));
            //也可以注入網路檔案

            // 呼叫網頁上已有js方法,等待js 方法執行完後,獲取返回值
Task<CefSharp.JavascriptResponse> t = browser.GetBrowser().MainFrame.EvaluateScriptAsync("testGetData()"); t.Wait(); // t.Result 是 CefSharp.JavascriptResponse 物件 // t.Result.Result 是一個 object 物件 if (t.Result.Result != null) { MessageBox.Show(t.Result.Result.ToString()); }
//注入js程式碼。當然也可以是jquery程式碼。如果頁面沒有jq庫,要先注入jq庫 //下面演示給 當前地址包含login的, 介面上div class=develop 的第一個input賦值aaaa var curUrl = browser.Address.ToLower(); if (curUrl.Contains("login".ToLower())) { string script = ""; script += "(function btn() {
"; script += " var obj = document.getElementsByClassName('develop');"; script += " if (obj.length > 0)"; script += " {"; script += " obj[0].getElementsByTagName('input')[0].focus();"; script += " obj[0].getElementsByTagName('input')[0].value ='aaaa';"; script += " }"; script += " })()"; //注入執行js browser.ExecuteScriptAsync(script); } }