示例#1
0
        public void OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
        {
            var jsCode = System.IO.File.ReadAllText(Environment.CurrentDirectory + @"\Scripts\app.js");
            var jQuery = System.IO.File.ReadAllText(Environment.CurrentDirectory + @"\Scripts\jquery-3.2.1.min.js");

            frame.ExecuteJavaScriptAsync(jQuery);
            frame.ExecuteJavaScriptAsync(jsCode);
        }
示例#2
0
 public static void KeyDown(IFrame frame, string target, int keyCode)
 {
     frame.ExecuteJavaScriptAsync(@"(function(){
                     var e = jQuery.Event('keydown');
                     e.keyCode = " + keyCode + @";
                     $('" + GetOriginal(target) + @"').trigger(e);}());");
     frame.ExecuteJavaScriptAsync(@"(function(){
                     var e = jQuery.Event('keyup');
                     e.keyCode = " + keyCode + @";
                     $('" + GetOriginal(target) + @"').trigger(e);}());");
 }
示例#3
0
 public static void RollDown(IFrame frame, int YOffset, string target = null)
 {
     if (target != null)
     {
         frame.ExecuteJavaScriptAsync(@"(function(){$('" + target + "').scrollTo({top:" + YOffset + ",behavior:'smooth'});}());");
     }
     else
     {
         frame.ExecuteJavaScriptAsync(@"(function(){window.scrollTo({top:" + YOffset + ",behavior:'smooth'});}());");
     }
 }
        // Wait for the underlying `Javascript Context` to be created, this is only called for the main frame.
        // If the page has no javascript, no context will be created.
        void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
        {
            const string script = "document.addEventListener('DOMContentLoaded', function(){  bound.initalizateAPP(); });" +
                                  "";

            frame.ExecuteJavaScriptAsync(script);
        }
示例#5
0
        public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
        {
            var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;

            ChromiumWebBrowser chromiumBrowser = null;

            //var windowX = windowInfo.X;
            //var windowY = windowInfo.Y;
            //var windowWidth = (windowInfo.Width == int.MinValue) ? 600 : windowInfo.Width;
            //var windowHeight = (windowInfo.Height == int.MinValue) ? 800 : windowInfo.Height;

            //chromiumWebBrowser.Dispatcher.Invoke(new Action(() => {
            //	chromiumBrowser = new ChromiumWebBrowser();
            //	//chromiumBrowser.SetAsPopup();

            //	var popup = new BrowserWindow(chromiumBrowser) {
            //		Address = targetUrl,
            //		//Left = windowX,
            //		//Top = windowY,
            //		//Width = windowWidth,
            //		//Height = windowHeight,
            //	};

            //	popup.Owner = this;
            //	popup.Show();

            //	_Popups.Add(popup);
            //}));

            frame.ExecuteJavaScriptAsync("console.log(window.location.href);");
            newBrowser = chromiumBrowser;

            return(false);
        }
示例#6
0
        public static void DispatchLanguageChanged(IFrame frame, string selectedLanguage)
        {
            var script = string.Concat(
                "var event = new CustomEvent('LanguageChanged', {detail:", "\"", selectedLanguage, "\"", " }); document.dispatchEvent(event);");

            frame.ExecuteJavaScriptAsync(script);
        }
        // Helpers

        public static void RunScript(IFrame frame, string script, string identifier)
        {
            if (script != null)
            {
                frame.ExecuteJavaScriptAsync(script, identifier, 1);
            }
        }
        // Wait for the underlying `Javascript Context` to be created, this is only called for the main frame.
        // If the page has no javascript, no context will be created.
        async void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
        {
            const string script = @"
                        document.addEventListener('DOMContentLoaded', function()
                        { 
                            alert('DomLoaded');
                            //test('你好吗?');
                        });
                        ";

            frame.ExecuteJavaScriptAsync(script);
            //await frame.EvaluateScriptAsync(script);

            //const string scriptWithReturn = @"
            //            test('测试返回');";
            //var task = frame.EvaluateScriptAsync(scriptWithReturn);
            //await task.ContinueWith(async t =>
            //{
            //    if (!t.IsFaulted)
            //    {
            //        await Task.Delay(5000);

            //        var response = t.Result;
            //        var x = response.Success ? (response.Result ?? "null") : response.Message;

            //        MessageBox.Show(x.ToString());
            //    }
            //});
        }
示例#9
0
        /// <summary>
        /// The execute.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <returns>
        /// The <see cref="ChromelyResponse"/>.
        /// </returns>
        private ChromelyResponse Execute(ChromelyRequest request)
        {
            var response = new ChromelyResponse(request.Id);

            response.ReadyState = (int)ReadyState.ResponseIsReady;
            response.Status     = (int)System.Net.HttpStatusCode.OK;
            response.StatusText = "OK";
            response.Data       = DateTime.Now.ToLongDateString();

            try
            {
                ScriptInfo scriptInfo = new ScriptInfo(request.PostData);
                IFrame     frame      = FrameHandler.GetFrame(scriptInfo.FrameName);
                if (frame == null)
                {
                    response.Data = $"Frame {scriptInfo.FrameName} does not exist.";
                    return(response);
                }

                frame.ExecuteJavaScriptAsync(scriptInfo.Script);
                response.Data = "Executed script :" + scriptInfo.Script;
                return(response);
            }
            catch (Exception e)
            {
                response.ReadyState = (int)ReadyState.RequestReceived;
                response.Status     = (int)System.Net.HttpStatusCode.BadRequest;
                response.StatusText = "Error";
            }

            return(response);
        }
示例#10
0
 private void executeJavaScriptCodeInBrowser(string code)
 {
     if (frame != null)
     {
         frame.ExecuteJavaScriptAsync(code);
     }
 }
示例#11
0
 private void WindowKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
 {
     if (e.Key == Key.S && Keyboard.Modifiers == ModifierKeys.Control)
     {
         int result = fs.SaveProject(htmlTextBox, csstextBox);
         if (result == 1 || result == 2)
         {
             SaveProject.IsEnabled = false;
         }
     }
     else if (e.Key == Key.O && Keyboard.Modifiers == ModifierKeys.Control)
     {
         fs.OpenProject(htmlTextBox, csstextBox, SaveProject, MainWindowBrowser);
     }
     else if (e.Key == Key.N && Keyboard.Modifiers == ModifierKeys.Control)
     {
         fs.NewProject(htmlTextBox, csstextBox, SaveProject, this);
     }
     else if (e.Key == Key.F && Keyboard.Modifiers == ModifierKeys.Control)
     {
         FindAndReplaceDialog dialog = new FindAndReplaceDialog(htmlTextBox, csstextBox);
         dialog.ShowDialog();
     }
     else if (e.Key == Key.D && Keyboard.Modifiers == ModifierKeys.Control)
     {
         DOMHierarchy dOM = new DOMHierarchy();
         dOM.generate(htmlTextBox, DomHierarchyTree);
     }
     else if (e.Key == Key.C && Keyboard.Modifiers == ModifierKeys.Control)
     {
         IFrame copyFrame = MainWindowBrowser.GetMainFrame();
         copyFrame.ExecuteJavaScriptAsync("copyAllElements()");
     }
     else if (e.Key == Key.V && Keyboard.Modifiers == ModifierKeys.Control && !isPressed)
     {
         isPressed = true;
         if (EditProperties.copycheck)
         {
             var    clipboarddata = System.Windows.Clipboard.GetText();
             IFrame frame         = MainWindowBrowser.GetMainFrame();
             frame.ExecuteJavaScriptAsync(String.Format("pasteAllElements(`{0}`)", clipboarddata));
             EditProperties.copycheck = false;
         }
         else
         {
             winForms.MessageBox.Show("Please select an element to paste", "Element Selection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
     else if (e.Key == Key.A && Keyboard.Modifiers == ModifierKeys.Control)
     {
         IFrame selectFrame = MainWindowBrowser.GetMainFrame();
         selectFrame.ExecuteJavaScriptAsync("selectAllElements()");
     }
     else if (e.Key == Key.Delete)
     {
         IFrame deleteFrame = MainWindowBrowser.GetMainFrame();
         deleteFrame.ExecuteJavaScriptAsync("deleteAllElements()");
     }
 }
示例#12
0
 public static void InjuctJQ(IFrame frame)
 {
     frame.ExecuteJavaScriptAsync(JQ);
     //frame.ExecuteJavaScriptAsync(@" (function(){
     //        var h = document.getElementsByTagName('head')[0];
     //        var s = document.createElement('script');
     //        s.src = '"+ JQuerySource + "';h.appendChild(s);}());");
 }
示例#13
0
        public static void ExecuteScript(IFrame frame, string script, string identifier)
        {
            if (script == null)
            {
                return;
            }

            frame.ExecuteJavaScriptAsync(script, UrlPrefix + identifier, 1);
        }
        void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
        {
            if (frame.Url == BaseMap.DefaultUrl)
            {
                string script = "document.addEventListener('DOMContentLoaded', function(){ " + BaseMap.LoadMap() + " });";

                frame.ExecuteJavaScriptAsync(script);
            }
        }
示例#15
0
        private void btnHighlight_Click(object sender, EventArgs e)
        {
            string escapedXPATH = EscapeXpath(txtXpath.Text);
            string script       = Properties.Resources.HighlightElement
                                  .Replace("{xpath}", escapedXPATH)
                                  .Replace("{count}", ((int)numericUpDown1.Value).ToString());

            _myFrame.ExecuteJavaScriptAsync(script);
        }
示例#16
0
        /// <summary>
        /// The function is used to change the content status
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="enable"></param>
        public static void DispatchContentStatusChanged(IFrame frame, bool enable)
        {
            var script = string.Format(
                CultureInfo.InvariantCulture,
                "var event = new CustomEvent('ContentStatusChanged', {{detail:{{contentStatus: {0} }} }}); document.dispatchEvent(event);",
                enable.ToString().ToLowerInvariant());

            frame.ExecuteJavaScriptAsync(script);
        }
示例#17
0
        public override bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
        {
            if (base.OnContextMenuCommand(browserControl, browser, frame, parameters, commandId, eventFlags))
            {
                return(true);
            }

            switch ((int)commandId)
            {
            case (int)CefMenuCommand.Reload:
                frame.ExecuteJavaScriptAsync("window.location.href = 'https://tweetdeck.twitter.com'");
                return(true);

            case MenuSettings:
                form.InvokeSafe(form.OpenSettings);
                return(true);

            case MenuAbout:
                form.InvokeSafe(form.OpenAbout);
                return(true);

            case MenuPlugins:
                form.InvokeSafe(form.OpenPlugins);
                return(true);

            case MenuMute:
                form.InvokeSafe(() => {
                    Program.UserConfig.MuteNotifications = !Program.UserConfig.MuteNotifications;
                    Program.UserConfig.Save();
                });

                return(true);

            case MenuOpenTweetUrl:
                BrowserUtils.OpenExternalBrowser(lastHighlightedTweet);
                return(true);

            case MenuCopyTweetUrl:
                SetClipboardText(lastHighlightedTweet);
                return(true);

            case MenuScreenshotTweet:
                form.InvokeSafe(form.TriggerTweetScreenshot);
                return(true);

            case MenuOpenQuotedTweetUrl:
                BrowserUtils.OpenExternalBrowser(lastHighlightedQuotedTweet);
                return(true);

            case MenuCopyQuotedTweetUrl:
                SetClipboardText(lastHighlightedQuotedTweet);
                return(true);
            }

            return(false);
        }
            public void OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
            {
                frame.ExecuteJavaScriptAsync(@"
				document.addEventListener('DOMContentLoaded', function (event) {
					var script = document.createElement('script');
					script.type = 'text/javascript';
					script.src = 'res://localhost/web/login.js';
					document.body.appendChild(script);
				});"                );
            }
示例#19
0
        private void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
        {
            IFrame frame = e.Frame;

            if (frame.IsMain && browser.Address != "about:blank")
            {
                frame.ExecuteJavaScriptAsync(PropertyBridge.GenerateScript(PropertyBridge.Environment.Notification));
                ScriptLoader.ExecuteFile(frame, "notification.js", this);
            }
        }
        void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
        {
            const string script = "document.addEventListener('DOMContentLoaded', function(){ " +

                                  "window.riot.control.trigger(window.riot.EVT.routeStore.in.routeDispatch, '/main/projects'); " +

                                  "});";

            frame.ExecuteJavaScriptAsync(script);
        }
示例#21
0
        public static void ExecuteScript(ChromiumWebBrowser browser, string script, string identifier)
        {
            if (script == null)
            {
                return;
            }

            using (IFrame frame = browser.GetMainFrame()){
                frame.ExecuteJavaScriptAsync(script, UrlPrefix + identifier, 1);
            }
        }
示例#22
0
 public void SendOtherFrameJs(string frameName, string js)
 {
     if (browser != null)
     {
         IFrame frame = browser.GetBrowser().GetFrame(frameName);
         if (frame != null)
         {
             frame.ExecuteJavaScriptAsync(js);
         }
     }
 }
示例#23
0
 public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName,
                           WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo,
                           IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
 {
     newBrowser = null;
     // Preserve new windows to be opened and load all popup urls in the same browser view
     //browserControl.Load(targetUrl);
     //frame.ExecuteJavaScriptAsync("setTimeout(function () { location.href = '" + targetUrl + "'; }, 1);");
     frame.ExecuteJavaScriptAsync(" location.href = '" + targetUrl + "'; ");
     return(true);
 }
示例#24
0
        private void downLoadStarter()
        {
            //Console.Out;
            //string src =  IBrowser.GetSourceAsync(webPagePreview);
            //webPagePreview.ViewSource();
            //webPagePreview.GetMainFrame().ViewSource();
            if (ReconSwitch.Value == 1)
            {
                ICEReconTimer.Start();
            }
            ICEDownloaderStatus.Content = "Running";
            string cmd = @"document.getElementById('companyId').selectedIndex=0; ";

            cmd += @"var a = document.getElementsByTagName('a'); ";
            cmd += @"var c; for(i=0;i<a.length;i++) if(a[i].href=='https://www.theice.com/reports/DealReport.shtml?excel=') c=a[i]; c.click(); ";
            //cmd += @"alert(a[3].href);";
            //cmd += @"document.getElementById('companyId').selectedIndex=1; c.click()";
            //cmd += @"var a = document.getElementsByTagName('a'); ";
            //cmd += "for(i=0;i<a.length;i++) if(a[i].href==\"https://www.theice.com/reports/DealReport.shtml?excel=\") a[i].click(); ";

            cmd  = @"var a = document.getElementsByTagName('a'); var c; for (i = 0; i < a.length; i++) if (a[i].href == 'https://www.theice.com/reports/DealReport.shtml?excel=') c = a[i];";
            cmd += @"document.getElementById('companyId').selectedIndex = 0; c.click(); setTimeout(function(){ document.getElementById('companyId').selectedIndex = 1; c.click(); },15000);";
            IFrame frame = webPagePreview.GetMainFrame();

            frame.ExecuteJavaScriptAsync(cmd);
            frame.ExecuteJavaScriptAsync("document.getElementById('companyId').selectedIndex = 1;");
            //frame.ExecuteJavaScriptAsync("alert('ExecuteJavaScript works!');");
            //frame->GetURL(), 0);

            /*
             * var a = document.getElementsByTagName('a'); var c; for(i=0;i<a.length;i++) if(a[i].href=='https://www.theice.com/reports/DealReport.shtml?excel=') c=a[i];  setInterval(function(){
             * document.getElementById('companyId').selectedIndex=0; c.click(); console.log("0 Done"); setTimeout(function(){document.getElementById('companyId').selectedIndex=1; c.click();},5000);
             * }, 600000);
             */

            Debug.WriteLine("..........." + webPagePreview.Content.ToString());
            DateTime now = TimeZoneInfo.ConvertTimeFromUtc(System.DateTime.UtcNow, TimeZoneInfo.Local);

            ICEDownloaderStatus.Content = "Last executed at " + now.ToString("dd-mmm-yy hh:mm:ss");
            //Console.WriteLine("..........." + webPagePreview.Content.ToString());
        }
        public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters,
                                         CefMenuCommand commandId, CefEventFlags eventFlags)
        {
            if (commandId == CefMenuCommand.Find)
            {
                string searchAddress = "https://www.bing.com/search?q=" + parameters.SelectionText;
                frame.ExecuteJavaScriptAsync($"window.open('{searchAddress}', '_blank')");
                return(true);
            }

            return(false);
        }
 // Wait for the underlying `Javascript Context` to be created, this is only called for the main frame.
 // If the page has no javascript, no context will be created.
 void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
 {
     frame.ExecuteJavaScriptAsync(
         string.Format(
             @"
            document.addEventListener('DOMContentLoaded', function() {{
                 CsApi.effectKind = ""{0}"";
                 CsApi.json = {1};
             }});",
             effectKind,
             json));
 }
示例#27
0
 public static void LoopKeyDown(IFrame frame, string target, int times, int delay, int keyCode = 34)
 {
     Thread.Sleep(delay * 2);
     for (int i = 0; i < times; i++)
     {
         frame.ExecuteJavaScriptAsync(@"(function(){
             var e = jQuery.Event('keydown');
             e.keyCode = " + keyCode + @";
             $('" + GetOriginal(target) + @"').trigger(e);}());");
         Thread.Sleep(delay);
     }
 }
示例#28
0
        public void ApplyStyleSheet()
        {
            if (!StyleSheetApplied && !Configuration.AppliesStyleSheet)
                return;

            try {
                if (StyleSheetApplied) {
                    var browser = Browser.GetBrowser();
                    bool has_game_frame = false;
                    foreach (var i in browser.GetFrameIdentifiers()) {
                        IFrame frame = browser.GetFrame(i);
                        if (frame.Name == "game_frame") {
                            has_game_frame = true;
                            frame.ExecuteJavaScriptAsync(string.Format(Properties.Resources.Restore_JS, StyleClassID));
                            break;
                        }
                    }
                    if (has_game_frame) {
                        browser.MainFrame.ExecuteJavaScriptAsync(string.Format(Properties.Resources.Restore_JS, StyleClassID));
                        StyleSheetApplied = false;
                        Browser.Dock = DockStyle.Fill;
                    }
                } else if (!StyleSheetApplied && Configuration.AppliesStyleSheet) {
                    var browser = Browser.GetBrowser();
                    bool has_game_frame = false;
                    foreach (var i in browser.GetFrameIdentifiers()) {
                        IFrame frame = browser.GetFrame(i);
                        if (frame.Name == "game_frame") {
                            has_game_frame = true;
                            frame.ExecuteJavaScriptAsync(string.Format(Properties.Resources.Frame_JS, StyleClassID));
                            break;
                        }
                    }
                    if (has_game_frame) {
                        browser.MainFrame.ExecuteJavaScriptAsync(string.Format(Properties.Resources.Page_JS, StyleClassID));
                        StyleSheetApplied = true;
                    }
                }

                ApplyZoom();
            }
            catch (Exception ex) {
                switch (BrowserUILanguage) {
                    case "zh":
                        SendErrorReport(ex.ToString(), "应用样式表失败。");
                        break;
                    default:
                        SendErrorReport(ex.ToString(), "スタイルシートの適用に失敗しました。");
                        break;
                }
            }
        }
 public void PasteElement(CefSharp.Wpf.ChromiumWebBrowser MainWindowBrowser)
 {
     if (copycheck)
     {
         var    clipboarddata = System.Windows.Clipboard.GetText();
         IFrame frame         = MainWindowBrowser.GetMainFrame();
         frame.ExecuteJavaScriptAsync(String.Format("pasteAllElements(`{0}`)", clipboarddata));
     }
     else
     {
         System.Windows.Forms.MessageBox.Show("Please select an element to paste", "Element Selection Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
     }
 }
示例#30
0
        public static void HandleDelayedJS(string browserName, IFrame frame)
        {
            string browsers_script = js[browserName];

            if (!string.IsNullOrEmpty(browsers_script))
            {
                if (frame != null && frame.IsMain)
                {
                    frame.ExecuteJavaScriptAsync(browsers_script);
                    js[browserName] = "";
                }
            }
        }
 // Wait for the underlying `Javascript Context` to be created, this is only called for the main frame.
 // If the page has no javascript, no context will be created.
 void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
 {
     frame.ExecuteJavaScriptAsync(
             string.Format(
                 @"
            document.addEventListener('DOMContentLoaded', function() {{
                 CsApi.effectKind = ""{0}"";
                 CsApi.json = {1};
             }});",
                 effectKind,
                 json));
 }