Страницы: 1
У меня задача: нужно программно (с-под С++), нажать на DOM-элемент.
Нашел несколько примеров по данному вопросу, вот мой код
(написан на С# с использованием GeckoFX, но думаю, суть понять можно)
Skybound.Gecko.GeckoElement el; /////<-- этот элемент(nsIDomElement) у нас есть изначально, для него нужно сгенерировать событие
Skybound.Gecko.nsIDOMEventTarget x = (Skybound.Gecko.Xpcom.QueryInterface<Skybound.Gecko.nsIDOMEventTarget>(el.DomObject));Skybound.Gecko.nsIDOMEvent evt = ((Skybound.Gecko.nsIDOMDocumentEvent)gWebBrowser.Document.DomObject).createEvent(new Skybound.Gecko.nsAString("MouseEvents"));
Skybound.Gecko.nsIDOMMouseEvent me = (Skybound.Gecko.nsIDOMMouseEvent)evt;
Skybound.Gecko.nsIDOMAbstractView ddv = Skybound.Gecko.Xpcom.QueryInterface<Skybound.Gecko.nsIDOMAbstractView>(gWebBrowser.Window.DomWindow);Skybound.Gecko.nsAString st = new Skybound.Gecko.nsAString("click");
me.InitMouseEvent(st, true, false, ddv, 0, 0, 0, 0, 0, false, false, false, false, 0, 0);
x.DispatchEvent(me);
Проблема в чем: если el у нас будет кнопка, чекбокс и т.п - все отлично работает, но если передать в el гиперссылку или баннер - событие вроде генерируется, но переход по ссылке не производится.
В чем может біть загвоздка? Может кто-то с данной задачей сталкивался?
Отсутствует
тут лучше просто взять src от ссылки и изменить url страницы на него
а если в ссылке прописан вызов функции яваскрипта, к примеру onclick. Как заставить его отработать из С++?
Чудеса на виражах (с)
Отсутствует
Страницы: 1