XPCOM错误
问题描述:
我使用GeckoFX 29.0与AutoJSContext,当我启动我的应用程序,它给了我下面的错误:XPCOM错误
Xpcom.Initialize must be called before using of any xulrunner/gecko-fx services
我明白,我必须初始化XPCOM调用AutoJS之前,但在我的代码XPCOM(xullrunner)被命名为“GeckoFxError”
Sub New()
InitializeComponent()
Gecko.Xpcom.Initialize(Environment.CurrentDirectory + "/xulrunner")
Gecko.GeckoPreferences.Default("extensions.blocklist.enabled") = False
Timer1.Enabled = True
End Sub
Sub New1()
Dim _memoryService = Xpcom.GetService(Of nsIMemory)("@mozilla.org/xpcom/memory-service;1")
_memoryService.HeapMinimize(False)
End Sub
Private Sub GeckoFXerror(sender As Object, e As Gecko.JavascriptErrorEventArgs) Handles GeckoWebBrowser1.JavascriptError
Dim text As String = "window.alert = function(){};"
Dim text2 As String = "window.confirm = function(){};"
Dim text3 As String = "window.open = function(){};"
Dim text4 As String = "window.prompt = function(){};"
Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext)
Dim result As String = ""
context.EvaluateScript(text, result)
End Using
Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext)
Dim result As String = ""
context.EvaluateScript(text2, result)
End Using
Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext)
Dim result As String = ""
context.EvaluateScript(text3, result)
End Using
Using context As AutoJSContext = New AutoJSContext(GeckoWebBrowser1.Window.JSContext)
Dim result As String = ""
context.EvaluateScript(text4, result)
End Using
End Sub
感谢您的帮助,我认为这很容易解决,但我还没有找到任何解决方案不止一个小组前初始化小时
答
在致电InitializeComponent()
之前放上Gecko.Xpcom.Initialize(Environment.CurrentDirectory + "/xulrunner")
,它应该可以工作。
我很久以前解决了这个问题,但是也很感谢 –