GeckoFX - альтернатива RaiseEvent или InvokeMember элемента управления WebBrowser.

В веб-браузере Microsoft можно сделать что-то вроде этого:

webBrowser1.Document .GetElementsByTagName("select")[4] .RaiseEvent("onchange");

который программно вызовет событие на веб-странице.

Возможно ли это сделать с помощью GeckoFX? Я не нашел ни одного метода, который бы работал таким образом с элементами HTML (например, выберите)

Ваше здоровье


person Bartosz    schedule 18.07.2014    source источник


Ответы (1)


После пары дней поиска я узнал, как это работает.

Сначала создайте «имя» события

Затем создайте само событие

Затем инициализируйте это событие

Наконец, отправьте это событие на цель. Например:

nsAStringBase changeEvent = (nsAStringBase)new nsAString("change");
var ev = browser.Document.CreateEvent("HTMLEvents");
ev.DomEvent.InitEvent(changeEvent, false, false);
myElement.GetEventTarget().DispatchEvent(ev);

Работает как шарм, надеюсь, это будет полезно для кого-то в будущем.

Бартош

person Bartosz    schedule 22.07.2014