GeckoDocument.CreateEvent抛出异常

时间:2015-01-16 16:04:57

标签: c# mozilla gecko

我的C#应用​​程序中有一个GeckoFX 29 GeckoWebBrowser。 我成功导航到一个网页,我有一个不接受简单" click()"所以我必须强行派遣事件。 问题是,当我尝试创建事件时,GeckoFX核心会引发异常。

var eventName = "mouseover";
var domEvent = browser.DomDocument.CreateEvent(eventName);
domEvent.DomEvent.InitEvent(new nsAString(eventName), true, true);

在CreateEvent(eventName)抛出异常,异常是:

System.Runtime.InteropServices.COMException (0x80530009): Exception from HRESULT : 0x80530009
   at Gecko.nsIDOMDocument.CreateEvent(nsAStringBase eventType)
   at Gecko.nsString.GenericPass[T,TString](Func`2 func, String value) in c:\Users\micro_000\Documents\Visual Studio 2008\Projects\geckofx-29.0\Geckofx-Core\nsString.cs:line 221
   at Gecko.nsString.Pass[T](Func`2 func, String value) in c:\Users\micro_000\Documents\Visual Studio 2008\Projects\geckofx-29.0\Geckofx-Core\nsString.cs:line 476
   at Gecko.GeckoDomDocument.CreateEvent(String name) in c:\Users\micro_000\Documents\Visual Studio 2008\Projects\geckofx-29.0\Geckofx-Core\DOM\GeckoDomDocument.cs:line 155
   at MyApp.Window.createEvent(GeckoDocument doc, String eventName)

我试着查看源代码,但nsIDOMDocument只是一个界面,我找不到这个问题的其他信息。

1 个答案:

答案 0 :(得分:0)

事实证明,CreateEvent只接受几个字符串。 因为它没有工作,我试图通过调用我要在文档中插入的java脚本来调度事件。研究我注意到CreateEvent与参数" Events"一起使用。然后你将使用实际的事件名称初始化你的事件。

到目前为止,我发现使用CreateEvent的params是" Events"," MouseEvent"," KeyboardEvent"。

此代码有效:

var eventName = "mouseover";
var domEvent = browser.DomDocument.CreateEvent("MouseEvent");
domEvent.DomEvent.InitEvent(new nsAString(eventName), true, true);