Ответ 1
Просто дикий выстрел в темноте, но может быть, потому что вы передаете объект "null" методу CreateEventObject? Что если вы измените это:
Object o = null;
Для этого:
Object o = new Object();
В строке 3 вашего примера?
Я пытаюсь создать синтетические события 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 должен быть равен, но он, похоже, не устанавливается.
Просто дикий выстрел в темноте, но может быть, потому что вы передаете объект "null" методу CreateEventObject? Что если вы измените это:
Object o = null;
Для этого:
Object o = new Object();
В строке 3 вашего примера?
Чтобы найти нужный элемент, вы должны попробовать метод getElementById из IHTMLDocument6: http://msdn.microsoft.com/en-us/library/cc288667