我的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只是一个界面,我找不到这个问题的其他信息。
答案 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);