public void AddEventListener(string type, DOMEventHandler listener, object options)
        {
            foreach (var unmanaged in
                     listener.Target?.Wrap().Wraps.
                     Select((c) => c.Get()).
                     Where((c) => typeof(DOMObject).IsAssignableTo(c.GetType())).
                     Select((c) => (DOMObject)c))
            {
                unmanaged.ReadyForManageObject();
            }

            bool addNativeEventListener = false;

            lock (eventHandlers)
            {
                if (!eventHandlers.ContainsKey(type))
                {
                    eventHandlers.Add(type, null);
                    addNativeEventListener = true;
                }
                eventHandlers[type] += listener;
            }

            if (addNativeEventListener)
            {
                var UID = NextEventId;
                AddJSEventListener(type, dispather(type), UID);
            }
        }
Exemplo n.º 2
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView);

            this.Controls.Add((Control)browserView.GetComponent());

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document = e.Browser.GetDocument();

                    DOMElement      link3Element = document.GetElementById("link3");
                    DOMEventHandler link3Event   = delegate(object domEventSender, DOMEventArgs domEventArgs)
                    {
                        if (domEventArgs.Type == DOMEventType.OnFocus)
                        {
                            Console.Out.WriteLine("link3 gets focus");
                        }
                        if (domEventArgs.Type == DOMEventType.OnBlur)
                        {
                            Console.Out.WriteLine("Remove focus from link3");
                        }
                    };
                    link3Element.AddEventListener(DOMEventType.OnFocus | DOMEventType.OnBlur, link3Event, false);


                    DOMElement elementFocused = null;
                    foreach (DOMElement element in document.GetElementsByTagName("a"))
                    {
                        Thread.Sleep(2000);
                        element.Focus();
                        elementFocused = element;
                    }

                    if (elementFocused != null)
                    {
                        Thread.Sleep(2000);
                        elementFocused.Blur();
                    }
                }
            };
            browserView.Browser.LoadHTML(@"<html>
                                                <body>
                                                    <a id='link1' href='#'>The link 1</a>
                                                    <a id='link2' href='#'>The link 2</a>
                                                    <a id='link3' href='#'>The link 3</a>
                                                    <script type='text/javascript'>
                                                        var link2 = document.getElementById('link2');
                                                        link2.addEventListener('focus', function () { console.log('link2 gets focus'); });
                                                        link2.addEventListener('blur', function () { console.log('Remove focus from link2'); });
                                                    </script>
                                                </body>
                                            </html>");
        }
        public Form1()
        {
            InitializeComponent();


            //Change address bar by event OnClick
            DOMEventHandler domEvent = delegate(object sender1, DOMEventArgs e1)
            {
                DOMEventType eventType = e1.Type;
            };

            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender2, FinishLoadingEventArgs e2)
            {
                if (e2.IsMainFrame)
                {
                    DOMDocument document        = e2.Browser.GetDocument();
                    DOMElement  documentElement = document.DocumentElement;
                    documentElement.AddEventListener(DOMEventType.OnClick, domEvent, false);
                }

                try
                {
                    //toolStripDebug.Text = browserView.Browser.GetDocument().GetElementByClassName("cdr_frm").GetElementByTagName("input").GetAttribute("value").ToString();
                    toolStripAddress.Text = browserView.Browser.URL.ToString();
                    this.Text             = browserView.Browser.Title;
                }
                catch { }
            };
        }
Exemplo n.º 4
0
        public void AddEventListener(string eventType, DOMEventHandler handler)
        {
            if (eventType == null)
            {
                return;
            }
            if (handler == null)
            {
                return;
            }

            var sendListen = false;

            List <DOMEventHandler> handlers;

            lock (domEventListeners) {
                if (!domEventListeners.TryGetValue(eventType, out handlers))
                {
                    handlers = new List <DOMEventHandler> ();
                    domEventListeners[eventType] = handlers;
                    sendListen = true;
                }
                handlers.Add(handler);
            }

            if (sendListen)
            {
                Send(new Message {
                    MessageType = MessageType.Listen,
                    TargetId    = Id,
                    Key         = eventType,
                });
            }
        }
Exemplo n.º 5
0
        public Form1()
        {
            InitializeComponent();

            browser = BrowserFactory.Create();
            BrowserView browserView = new WinFormsBrowserView(browser);

            browserView.Browser.DialogHandler = new WinFormsDefaultDialogHandler((Control)browserView.GetComponent());

            this.Controls.Add((Control)browserView.GetComponent());

            DOMEventHandler domEvent = delegate(object sender, DOMEventArgs e)
            {
                DOMEventType eventType = e.Type;
                Console.Out.WriteLine("handleEvent = " + eventType);
            };


            browserView.Browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
            {
                if (e.IsMainFrame)
                {
                    DOMDocument document        = e.Browser.GetDocument();
                    DOMElement  documentElement = document.DocumentElement;
                    documentElement.AddEventListener(DOMEventType.OnClick | DOMEventType.OnMouseDown | DOMEventType.OnMouseUp | DOMEventType.OnKeyDown, domEvent, false);
                }
            };

            browserView.Browser.LoadURL("http://www.teamdev.com");
        }
Exemplo n.º 6
0
        public HTMLFormElement()
        {
            Init("FORM");

            Elements = new HTMLFormControlsCollection();
            OnReset  = new DOMEventHandler <HTMLFormEventReset>(this);
            OnSubmit = new DOMEventHandler <HTMLFormEventSubmit>(this);
        }
Exemplo n.º 7
0
        //void keyHook_KeyDown(object sender, KeyEventArgs e)
        //{ }
        //void keyHook_KeyUp(object sender, KeyEventArgs e)
        //{ }
        //void keyHook_KeyPress(object sender, KeyPressEventArgs e)
        //{
        //    MessageBox.Show(e.KeyChar.ToString());
        //}

        //void mousehook_Click(object sender, MouseEventArgs e)
        //{
        //    if (UserBar.instance != null)
        //    {
        //        //Get Web Browser
        //        if (Recorder.HostInstance != null && Recorder.HostInstance.BrowserRef != null)
        //        {
        //            IWebBrowser2 ActiveBrowser = Recorder.HostInstance.BrowserRef as SHDocVw.IWebBrowser2;

        //            if (ActiveBrowser != null)
        //            {
        //                //Get the current document
        //                HTMLDocument htmlDoc = (HTMLDocument)ActiveBrowser.Document;

        //                if (htmlDoc != null)
        //                {
        //                    DispHTMLDocument doc = (DispHTMLDocument)htmlDoc;

        //                    //Record the basic Url
        //                    string address = ActiveBrowser.LocationURL;
        //                    //Get
        //                    IHTMLElement activeElement = doc.activeElement;

        //                    if (activeElement.tagName != null)
        //                    {
        //                        //do something

        //                        //then do the right thing
        //                    }
        //                }
        //            }
        //        }
        //    }
        //}

        //void mouseHook_MouseMove(object sender, MouseEventArgs e)
        //{ }

        //void mouseHook_MouseDown(object sender, MouseEventArgs e)
        //{ }

        //void mouseHook_MouseUp(object sender, MouseEventArgs e)
        //{

        //}

        //void mouseHook_MouseWheel(object sender, MouseEventArgs e)
        //{ }


        //[DllImport("user32.dll")]
        //static extern IntPtr GetForegroundWindow();

        //[DllImport("user32.dll")]
        //static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);

        //private string GetActiveWindowTitle()
        //{
        //    const int nChars = 256;
        //    IntPtr handle = IntPtr.Zero;
        //    StringBuilder Buff = new StringBuilder(nChars);
        //    handle = GetForegroundWindow();

        //    if (GetWindowText(handle, Buff, nChars) > 0)
        //    {
        //        return Buff.ToString();
        //    }
        //    return null;
        //}
        //private const int WH_KEYBOARD_LL = 13;

        //protected const int WH_MOUSE_LL = 14;
        //protected const int WH_MOUSE = 7;
        //protected const int WH_KEYBOARD = 2;
        //protected const int WM_MOUSEMOVE = 0x200;
        //protected const int WM_LBUTTONDOWN = 0x201;
        //protected const int WM_RBUTTONDOWN = 0x204;
        //protected const int WM_MBUTTONDOWN = 0x207;
        //protected const int WM_LBUTTONUP = 0x202;
        //protected const int WM_RBUTTONUP = 0x205;
        //protected const int WM_MBUTTONUP = 0x208;
        //protected const int WM_LBUTTONDBLCLK = 0x203;
        //protected const int WM_RBUTTONDBLCLK = 0x206;
        //protected const int WM_MBUTTONDBLCLK = 0x209;
        //protected const int WM_MOUSEWHEEL = 0x020A;

        //protected const int WM_KEYDOWN = 0x100;
        //protected const int WM_KEYUP = 0x101;
        //protected const int WM_SYSKEYDOWN = 0x104;
        //protected const int WM_SYSKEYUP = 0x105;

        //protected const byte VK_SHIFT = 0x10;
        //protected const byte VK_CAPITAL = 0x14;
        //protected const byte VK_NUMLOCK = 0x90;

        //protected const byte VK_LSHIFT = 0xA0;
        //protected const byte VK_RSHIFT = 0xA1;
        //protected const byte VK_LCONTROL = 0xA2;
        //protected const byte VK_RCONTROL = 0x3;
        //protected const byte VK_LALT = 0xA4;
        //protected const byte VK_RALT = 0xA5;

        //protected const byte LLKHF_ALTDOWN = 0x20;

        //private static LowLevelMouseProc _proc = HookCallback;
        //private static IntPtr _hookID = IntPtr.Zero;


        //private static IntPtr SetHook(LowLevelMouseProc proc)
        //{
        //    using (Process curProcess = Process.GetCurrentProcess())
        //    using (ProcessModule curModule = curProcess.MainModule)
        //    {
        //        IntPtr handle = GetModuleHandle(curModule.ModuleName);
        //        IntPtr ret = SetWindowsHookEx(WH_MOUSE_LL, proc,
        //            handle, 0);
        //        //MessageBox.Show(Marshal.GetLastWin32Error().ToString());
        //        return ret;
        //    }
        //}

        //private delegate IntPtr LowLevelMouseProc(
        //    int nCode, IntPtr wParam, IntPtr lParam);

        //private static IntPtr HookCallback(
        //    int nCode, IntPtr wParam, IntPtr lParam)
        //{
        //    if (nCode >= 0 && wParam == (IntPtr)WM_LBUTTONUP)
        //    {
        //        int vkCode = Marshal.ReadInt32(lParam);
        //        //Console.WriteLine((Keys)vkCode);
        //        if (UserBar.instance != null)
        //        {
        //            //Get Web Browser
        //            if (Recorder.HostInstance != null && Recorder.HostInstance.BrowserRef != null)
        //            {
        //                IWebBrowser2 ActiveBrowser = Recorder.HostInstance.BrowserRef as SHDocVw.IWebBrowser2;

        //                if (ActiveBrowser != null)
        //                {
        //                    //Get the current document
        //                    HTMLDocument htmlDoc = (HTMLDocument)ActiveBrowser.Document;

        //                    if (htmlDoc != null)
        //                    {
        //                        DispHTMLDocument doc = (DispHTMLDocument)htmlDoc;

        //                        //Record the basic Url
        //                        string address = ActiveBrowser.LocationURL;
        //                        //Get
        //                        IHTMLElement activeElement = doc.activeElement;

        //                        if (activeElement != null)
        //                        {
        //                            MessageBox.Show(activeElement.tagName);
        //                        }
        //                    }
        //                }
        //            }
        //        }
        //    }
        //    return CallNextHookEx(_hookID, nCode, wParam, lParam);
        //}

        //[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        //private static extern IntPtr SetWindowsHookEx(int idHook,
        //    LowLevelMouseProc lpfn, IntPtr hMod, uint dwThreadId);

        //[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        //[return: MarshalAs(UnmanagedType.Bool)]
        //private static extern bool UnhookWindowsHookEx(IntPtr hhk);

        //[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        //private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
        //    IntPtr wParam, IntPtr lParam);

        //[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        //private static extern IntPtr GetModuleHandle(string lpModuleName);


        //void HookMouseUp(object sender, Microsoft.Win32.MouseHookEventArgs e)
        //{
        //    if (UserBar.instance != null)
        //    {
        //        //Get Web Browser
        //        if (Recorder.HostInstance != null && Recorder.HostInstance.BrowserRef != null)
        //        {
        //            IWebBrowser2 ActiveBrowser = Recorder.HostInstance.BrowserRef as SHDocVw.IWebBrowser2;

        //            if (ActiveBrowser != null)
        //            {
        //                //Get the current document
        //                HTMLDocument htmlDoc = (HTMLDocument)ActiveBrowser.Document;

        //                if (htmlDoc != null)
        //                {
        //                    DispHTMLDocument doc = (DispHTMLDocument)htmlDoc;

        //                    //Record the basic Url
        //                    string address = ActiveBrowser.LocationURL;
        //                    //Get
        //                    IHTMLElement activeElement = doc.activeElement;

        //                    if (activeElement != null)
        //                    {
        //                        MessageBox.Show(activeElement.tagName);
        //                    }
        //                }
        //            }
        //        }
        //    }
        //}


        void Recorder_OnDocumentComplete(object pDisp, ref object url)
        {
            if (UserBar.instance != null)
            {
                //Get Web Browser
                if (Recorder.HostInstance != null && Recorder.HostInstance.BrowserRef != null)
                {
                    IWebBrowser2 ActiveBrowser = Recorder.HostInstance.BrowserRef as SHDocVw.IWebBrowser2;

                    if (ActiveBrowser != null)
                    {
                        //Get the current document
                        HTMLDocument htmlDoc = (HTMLDocument)ActiveBrowser.Document;

                        DispHTMLDocument doc = (DispHTMLDocument)htmlDoc;

                        //Record the basic Url
                        string address = ActiveBrowser.LocationURL;

                        if (htmlDoc != null)
                        {
                            //Bind events
                            DOMEventHandler onclickhandler = new DOMEventHandler(doc, null);
                            onclickhandler.NewEventHandlers += new DOMEvent(DOMEventMethods._click);
                            doc.onclick = onclickhandler;



                            DOMEventHandler onclickhandler1 = new DOMEventHandler(doc, doc.onclick);
                            onclickhandler1.NewEventHandlers += new DOMEvent(DOMEventMethods._link_click);
                            doc.onmouseup = onclickhandler1;

                            //Bind Href Click
                            //foreach (mshtml.HTMLAnchorElement link in htmlDoc.anchors)
                            //{

                            //    ((HTMLAnchorEvents_Event)link).onmouseup += new HTMLAnchorEvents_onmouseupEventHandler(() =>
                            //    {
                            //        DOMEventMethods._link_click(link);
                            //        //return true;
                            //    });
                            //}

                            //Bind IFrame events
                            //IHTMLElementCollection elems = htmlDoc.getElementsByTagName("iframe");
                            //foreach (IHTMLElement elem in elems)
                            //{
                            //    HTMLFrameElement frm = (HTMLFrameElement)elem;
                            //    DispHTMLDocument frm_doc = (DispHTMLDocument)((SHDocVw.IWebBrowser2)frm).Document;
                            //    DOMEventHandler onclickfrmhandler = new DOMEventHandler(frm_doc);
                            //    onclickfrmhandler.Handler += new DOMEvent(DOMEventMethods._click);
                            //    (frm as DispHTMLDocument).onclick = onclickfrmhandler;
                            //}
                        }
                    }
                }
            }
        }
Exemplo n.º 8
0
        public void AddEventListener(string type, DOMEventHandler listener, object options)
        {
            bool addNativeEventListener = false;

            lock (eventHandlers)
            {
                if (!eventHandlers.ContainsKey(type))
                {
                    eventHandlers.Add(type, null);
                    addNativeEventListener = true;
                }
                eventHandlers[type] += listener;
            }

            if (addNativeEventListener)
            {
                var UID = NextEventId;
                AddJSEventListener(type, dispather(type), UID);
            }
        }
Exemplo n.º 9
0
        public void RemoveEventListener(string eventType, DOMEventHandler handler)
        {
            if (eventType == null)
            {
                return;
            }
            if (handler == null)
            {
                return;
            }

            List <DOMEventHandler> handlers;

            lock (domEventListeners) {
                if (domEventListeners.TryGetValue(eventType, out handlers))
                {
                    handlers.Remove(handler);
                }
            }
        }
Exemplo n.º 10
0
            public WindowMain()
            {
                Browser browser = BrowserFactory.Create();

                browserView = new WPFBrowserView(browser);

                browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
                {
                    if (e.IsMainFrame)
                    {
                        DOMDocument document = e.Browser.GetDocument();

                        var myEvent = browser.CreateEvent("MyEvent");

                        DOMNode root = document.GetElementById("root");

                        DOMEventHandler domEvent = delegate(object s, DOMEventArgs evt)
                        {
                            if (evt.EventType == myEvent.EventType)
                            {
                                DOMNode    textNode  = document.CreateTextNode("Some text");
                                DOMElement paragraph = document.CreateElement("p");
                                paragraph.AppendChild(textNode);
                                root.AppendChild(paragraph);
                            }
                        };

                        root.AddEventListener(myEvent, domEvent, false);

                        Thread.Sleep(3000);
                        root.DispatchEvent(myEvent);
                    }
                };

                Content = browserView;

                Width        = 1024;
                Height       = 768;
                this.Loaded += WindowMain_Loaded;
            }
Exemplo n.º 11
0
        private void _BindDomEvent(DispHTMLDocument doc)
        {
            DOMEventHandler onclickHandler = new DOMEventHandler(doc, null);

            onclickHandler.NewEventHandlers += new DOMEvent(_click);
            doc.onmouseup = onclickHandler;

            DOMEventHandler onmouseoverHandler = new DOMEventHandler(doc, null);

            onmouseoverHandler.NewEventHandlers += new DOMEvent(_mouseover);
            doc.onmouseover = onmouseoverHandler;

            DOMEventHandler onmouseoutHandler = new DOMEventHandler(doc, null);

            onmouseoutHandler.NewEventHandlers += new DOMEvent(_mouseout);
            doc.onmouseout = onmouseoutHandler;

            DOMEventHandler onkeyupHandler = new DOMEventHandler(doc, null);

            onkeyupHandler.NewEventHandlers += new DOMEvent(_keyup);
            doc.onkeyup = onkeyupHandler;
        }
Exemplo n.º 12
0
        public void AddEventListener(string type, DOMEventHandler listener, object options)
        {
            bool addNativeEventListener = false;

            lock (eventHandlers)
            {
                if (!eventHandlers.ContainsKey(type))
                {
                    eventHandlers.Add(type, null);
                    addNativeEventListener = true;
                }
                eventHandlers[type] += listener;
            }

            if (addNativeEventListener)
            {
                string UID = RuntimeUtilities.NextUID.ToString();

                RuntimeEventManager.RegisterEventTarget(UID, this);

                var addEventListerFor = "MonoWasmBrowserAPI.mono_wasm_addEventListener(" + Handle + ",\"" + type + "\",\"" + UID + "\")";
                var res = Runtime.ExecuteJavaScript(addEventListerFor);
            }
        }
Exemplo n.º 13
0
 /// <summary>
 /// Add an asynchronous test to run. The test must include a call to start().
 /// </summary>
 /// <param name="name">The name of the test</param>
 /// <param name="expected">How many assertions are expected to run.</param>
 /// <param name="test">The actual testing code to run, should include at least one assertion.</param>
 public static void AsyncTest(string name, int expected, DOMEventHandler test)
 {
 }
Exemplo n.º 14
0
 /// <summary>
 /// Add an asynchronous test to run. The test must include a call to start().
 /// </summary>
 /// <param name="name">The name of the test</param>
 /// <param name="test">The actual testing code to run, should include at least one assertion.</param>
 public static void AsyncTest(string name, DOMEventHandler test)
 {
 }
 public void RemoveEventListener(string type, DOMEventHandler listener, object options)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 16
0
 public jQuery Keydown(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 17
0
 public jQuery Keypress(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 18
0
 public jQuery Mouseup(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 19
0
 public jQuery One(string fnType, object data, DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 20
0
 public jQuery Resize(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 21
0
 public jQuery Hover(DOMEventHandler handlerOver, DOMEventHandler handlerOut)
 {
     return(new jQuery());
 }
Exemplo n.º 22
0
 public jQuery Scroll(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 23
0
 public jQuery Unload(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 24
0
 public jQuery Unbind(string fnType, DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 25
0
 public jQuery Toggle(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 26
0
 public jQuery Submit(DOMEventHandler handler)
 {
     return(new jQuery());
 }
 public void RemoveEventListener(string type, DOMEventHandler listener, object options)
 {
     InvokeMethod <object>("removeEventListener", type, listener, options);
 }
Exemplo n.º 28
0
 public jQuery Error(DOMEventHandler handler)
 {
     return(new jQuery());
 }
Exemplo n.º 29
0
 public void RemoveEventListener(string type, DOMEventHandler listener, object options)
 {
 }
Exemplo n.º 30
0
 public jQuery Focus(DOMEventHandler handler)
 {
     return(new jQuery());
 }