Не могу установить IHTMLEventObj2 :: fromElement - PullRequest
33 голосов
/ 04 декабря 2008

Я пытаюсь сгенерировать синтетические события Javascript в расширении Internet Explorer, и у меня возникают проблемы с сохранением свойства fromElement. Вот выдержка из моего кода:

MsHtml.IHTMLDocument4 doc4 = ... // the document object
Object o = null;
MsHtml.IHTMLEventObj2 eObj = 
    (MsHtml.IHTMLEventObj2)doc4.CreateEventObject(ref o);

// string that specifies the from element, e.g. "document.getElementById('id1')":
string locator = ... 
object from = doc4.Script.GetType().InvokeMember("eval", 
                                                 BindingFlags.InvokeMethod, 
                                                 null, 
                                                 doc4.Script, 
                                                 new object[] { locator });

// from now holds a ref to an object that implements the IHTMLElement interface
eObj.fromElement = from;
IHTMLElement el = eObj.fromElement;
// el == null

Что я здесь не так делаю? eObj.fromElement должен быть равен from, но, похоже, он не устанавливается.

Ответы [ 2 ]

1 голос
/ 13 августа 2012

Чтобы найти нужный элемент, вы должны попробовать метод getElementById из IHTMLDocument6: http://msdn.microsoft.com/en-us/library/cc288667

1 голос
/ 09 августа 2012

Просто дикий выстрел в темноте, но может ли это быть из-за того, что вы передали «нулевой» объект методу CreateEventObject? Что если вы измените это:

Object o = null;

К этому:

Object o = new Object();

В строке 3 вашего примера?

...