GeckoDocument.CreateEvent 抛出异常
GeckoDocument.CreateEvent throws an exception
我的 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 只是一个接口,没有我能找到的关于此问题的其他信息。
事实证明,CreateEvent 只接受几个字符串。
因为它不起作用,所以我试图通过调用要插入文档的 java 脚本来分派事件。研究我注意到 CreateEvent 与参数 "Events" 一起使用,然后您将使用实际事件名称初始化事件。
到目前为止,我发现与 CreateEvent 一起使用的参数是 "Events"、"MouseEvent"、"KeyboardEvent"。
此代码有效:
var eventName = "mouseover";
var domEvent = browser.DomDocument.CreateEvent("MouseEvent");
domEvent.DomEvent.InitEvent(new nsAString(eventName), true, true);
我的 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 只是一个接口,没有我能找到的关于此问题的其他信息。
事实证明,CreateEvent 只接受几个字符串。 因为它不起作用,所以我试图通过调用要插入文档的 java 脚本来分派事件。研究我注意到 CreateEvent 与参数 "Events" 一起使用,然后您将使用实际事件名称初始化事件。
到目前为止,我发现与 CreateEvent 一起使用的参数是 "Events"、"MouseEvent"、"KeyboardEvent"。
此代码有效:
var eventName = "mouseover";
var domEvent = browser.DomDocument.CreateEvent("MouseEvent");
domEvent.DomEvent.InitEvent(new nsAString(eventName), true, true);