Exemple #1
0
        /// <summary>
        /// Fires the given event on the given element.
        /// </summary>
        /// <param name="element">Element to fire the event on</param>
        /// <param name="eventName">Name of the event to fire</param>
        /// <param name="eventObjectProperties">The event object properties.</param>
        public static void FireEvent(DispHTMLBaseElement element, string eventName, NameValueCollection eventObjectProperties)
        {
            StringBuilder scriptCode = CreateJavaScriptFireEventCode(eventObjectProperties, element, eventName);

            try
            {
                IHTMLWindow2 window = ((IHTMLDocument2)element.document).parentWindow;
                RunScript(scriptCode.ToString(), window);
            }
            catch (RunScriptException)
            {
                // In a cross domain automation scenario a System.UnauthorizedAccessException
                // is thrown. The following code doesn't seem to have any effect,
                // but maybe someday MicroSoft fixes the issue... so I wrote the code anyway.
                object dummyEvt  = null;
                object parentEvt = ((IHTMLDocument4)element.document).CreateEventObject(ref dummyEvt);

                IHTMLEventObj2 eventObj = (IHTMLEventObj2)parentEvt;

                for (int index = 0; index < eventObjectProperties.Count; index++)
                {
                    string property = eventObjectProperties.GetKey(index);
                    string value    = eventObjectProperties.GetValues(index)[0];

                    eventObj.setAttribute(property, value, 0);
                }

                element.FireEvent(eventName, ref parentEvt);
            }
        }
Exemple #2
0
        public void CanMockIE()
        {
            IHTMLEventObj2 mock = MockRepository.Mock <IHTMLEventObj2>();

            mock.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault);
            Assert.NotNull(mock);
        }
Exemple #3
0
        public void CanMockIE()
        {
            MockRepository mockRepository = new MockRepository();
            IHTMLEventObj2 mock           = mockRepository.StrictMock <IHTMLEventObj2>();

            Assert.NotNull(mock);
        }
Exemple #4
0
 public void HandleEvent(IHTMLEventObj pEvtObj)
 {
     if (pEvtObj.type == "onpropertychange")
     {
         IHTMLEventObj2 e2 = pEvtObj as IHTMLEventObj2;
         if (String.Compare("innerHTML", e2.propertyName, false) == 0 ||
             String.Compare("outerHTML", e2.propertyName, false) == 0)
         {
             Notify(null);
         }
     }
 }
        bool Events_Ondragstart(IHTMLEventObj e)
        {
            preY = e.clientY;


            eventObj = e as IHTMLEventObj2;
            url      = (object)eventObj.dataTransfer.getData("URL") as string;
            text     = (object)eventObj.dataTransfer.getData("TEXT") as string;
            //MessageBox.Show(url.ToString());

            return(true);
        }
Exemple #6
0
        static void DispatchChangeEvent(WebControl awc, int iIndex, string sControl, IHTMLSelectElement ihie, IHTMLOptionElement ihoe, IHTMLDocument2 oDoc2)
        {
            ihoe.selected = true;
            object dummy = null;
            IHTMLDocument4 oDoc4 = (IHTMLDocument4)oDoc2;
            object eventObj = oDoc4.CreateEventObject(ref dummy);
            IHTMLEventObj2 obj2 = (IHTMLEventObj2)eventObj;

            IHTMLSelectElement hsec = ihie as IHTMLSelectElement;
            awc.ReportNavState("Before FireEvent");
            hsec.FireEvent("onchange", ref eventObj);
            awc.ReportNavState("After FireEvent");
        }
Exemple #7
0
        static void DispatchChangeEventTry2(
            WebControl awc,
            int iIndex,
            string sControl,
            IHTMLSelectElement ihie,
            IHTMLOptionElement ihoe,
            IHTMLDocument2 oDoc2)
        {
            object dummy = null;
            IHTMLDocument4 oDoc4 = (IHTMLDocument4) oDoc2;
            object eventObj = oDoc4.CreateEventObject(ref dummy);
            IHTMLEventObj2 obj2 = (IHTMLEventObj2) eventObj;

            IHTMLElement3 ihe3 = (IHTMLElement3) ihie;
            awc.ResetNav();
            awc.ReportNavState("Before FireEvent");
//            ihe3.FireEvent("onchange", ref eventObj);

            HtmlElement head = awc.AxWeb.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = awc.AxWeb.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement) scriptEl.DomElement;

            // element.text = $"function changeSelect() {{ $'({sControl}').trigger('change'); }}";
            element.text = "function triggerOnChange() "
                           + "{{ "
                           +
//                           "alert('im here'); " +
                           $"var ctl = document.getElementById('{sControl}'); "
                           +
//                           "alert(ctl); "+
                           "var evt = document.createEvent('HTMLEvents'); "
                           + "evt.initEvent('change', false, true); "
                           + "ctl.dispatchEvent(evt);"
                           + "}} ";
            // element.text = $"function triggerOnChange() {{ alert('{sControl}');}}";
            head.AppendChild(scriptEl);

            // ArbWeb.AwMainForm.DebugModelessWait();
            awc.AxWeb.Document.InvokeScript("triggerOnChange");
            // ArbWeb.AwMainForm.DebugModelessWait();
            awc.ReportNavState("After FireEvent");
            awc.WaitForBrowserReady();
            awc.WaitDoLog(500);
        }
Exemple #8
0
        static void DispatchEventNew(ArbWebControl awc, int iIndex, string sControl, IHTMLSelectElement ihie, IHTMLOptionElement ihoe, IHTMLDocument2 oDoc2)
        {
            ihoe.selected = true;
            object dummy = null;
            IHTMLDocument4 oDoc4 = awc.Document4;
            object eventObj = oDoc4.CreateEventObject(ref dummy);
            var obj = eventObj;
            obj.initEvent("onchange", true, true);

            IHTMLEventObj2 obj2 = (IHTMLEventObj2)eventObj;

            HTMLSelectElementClass hsec = ihie as HTMLSelectElementClass;
            awc.ReportNavState("Before FireEvent");
            hsec.selectedIndex = iIndex;
            
            obj2.fromElement = hsec;
            obj2.srcElement = hsec;
            obj2.propertyName = sControl;

            bool f;
            oDoc4.FireEvent("change", ref eventObj);

            awc.ReportNavState("After FireEvent");
        }
Exemple #9
0
        bool Events_Ondragstart(IHTMLEventObj e)
        {
            preY = e.clientY;

            eventObj = e as IHTMLEventObj2;
            url = (object)eventObj.dataTransfer.getData("URL") as string;
            text = (object)eventObj.dataTransfer.getData("TEXT") as string;
            //MessageBox.Show(url.ToString());

            return true;
        }
 public HtmlEventArgs(IHTMLEventObj evt)
 {
     _htmlEvt  = evt;
     _htmlEvt2 = evt as IHTMLEventObj2;
 }
        public void CanMockIE()
        {
            IHTMLEventObj2 mock = MockRepository.Mock <IHTMLEventObj2>();

            Assert.NotNull(mock);
        }
 public HtmlEventArgs(IHTMLEventObj evt)
 {
     _htmlEvt = evt;
     _htmlEvt2 = evt as IHTMLEventObj2;
 }