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 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);
            }

        }