/// <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); } }
public void CanMockIE() { IHTMLEventObj2 mock = MockRepository.Mock <IHTMLEventObj2>(); mock.SetUnexpectedBehavior(UnexpectedCallBehaviors.BaseOrDefault); Assert.NotNull(mock); }
public void CanMockIE() { MockRepository mockRepository = new MockRepository(); IHTMLEventObj2 mock = mockRepository.StrictMock <IHTMLEventObj2>(); Assert.NotNull(mock); }
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); }
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"); }
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); }
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"); }
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); }