Example #1
0
 public string InvokeScript(string funcName, bool isEval = false)
 {
     try
     {
         if (!isEval)
         {
             funcName = JointMethodStr(funcName, null);
         }
         ThreadQueue tq = new ThreadQueue(
             new Task <Task <JavascriptResponse> >(funcEval => {
             return(WebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(funcEval.ToString()));
         }, funcName), this);
         tq.Start();
         tq.Wait();
         if (null != tq.Result)
         {
             if (null != tq.Result.Result)
             {
                 if (null != tq.Result.Result.Result)
                 {
                     return(tq.Result.Result.Result.ToString());
                 }
             }
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Example #2
0
        /// <summary>
        /// 获取当前页面Dom树
        /// </summary>
        private HTMLDocument GetDocument()
        {
            if (!IsChromeLoaded || !IsDocumentLoaded)
            {
                return(new HTMLDocument());
            }
            Task <string>  returnStr = null;
            IHTMLDocument2 document  = (IHTMLDocument2)(new HTMLDocumentClass());

            this.Dispatcher.Invoke(() =>
            {
                returnStr = WebBrowser.GetBrowser().MainFrame.GetSourceAsync();
            });
            var waiter = returnStr.GetAwaiter();

            waiter.OnCompleted(() => {
                this._isDocumentGeted = true;
                document.write(returnStr.Result.ToString());
            });
            return((HTMLDocument)document);
        }
Example #3
0
 private void ShowDevTools()
 {
     WebBrowser.GetBrowser().GetHost().ShowDevTools();
     Keyboard.ClearFocus();
 }