2016-03-07 53 views
0

我使用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 

感謝您的幫助,我認爲這很容易解決,但我還沒有找到任何解決方案不止一個小組前初始化小時

回答

1

在致電InitializeComponent()之前放上Gecko.Xpcom.Initialize(Environment.CurrentDirectory + "/xulrunner"),它應該可以工作。

+1

我很久以前解決了這個問題,但是也很感謝 –